Skip to content

Commit 44bd3dd

Browse files
committed
Split uwm configuration from ClusterMonitoringConfiguration
1 parent 882dc1b commit 44bd3dd

File tree

2 files changed

+35
-114
lines changed

2 files changed

+35
-114
lines changed

Diff for: pkg/manifests/config.go

+35-44
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,18 @@ type ClusterMonitoringConfiguration struct {
4848
K8sPrometheusAdapter *K8sPrometheusAdapter `json:"k8sPrometheusAdapter"`
4949
ThanosQuerierConfig *ThanosQuerierConfig `json:"thanosQuerier"`
5050
UserWorkloadEnabled *bool `json:"enableUserWorkload"`
51-
// TODO: Remove in 4.7 release.
52-
PrometheusUserWorkloadConfig *PrometheusK8sConfig `json:"prometheusUserWorkload"`
53-
PrometheusOperatorUserWorkloadConfig *PrometheusOperatorConfig `json:"prometheusOperatorUserWorkload"`
54-
ThanosRulerConfig *ThanosRulerConfig `json:"thanosRuler"`
55-
UserWorkloadConfig *UserWorkloadConfig `json:"techPreviewUserWorkload"`
51+
}
52+
53+
// TODO: Remove in 4.7 release.
54+
type UserWorkloadLegacyConfiguration struct {
55+
UserWorkloadConfiguration
56+
TechPreviewUserWorkload *UserWorkloadConfig `json:"techPreviewUserWorkload"`
57+
}
58+
59+
type UserWorkloadConfiguration struct {
60+
PrometheusOperator *PrometheusOperatorConfig `json:"prometheusOperator"`
61+
Prometheus *PrometheusK8sConfig `json:"prometheus"`
62+
ThanosRuler *ThanosRulerConfig `json:"thanosRuler"`
5663
}
5764

5865
type Images struct {
@@ -182,18 +189,36 @@ func (cfg *TelemeterClientConfig) IsEnabled() bool {
182189
}
183190

184191
func NewConfig(content io.Reader) (*Config, error) {
185-
c := Config{}
192+
c := &Config{}
186193
cmc := ClusterMonitoringConfiguration{}
187194
err := k8syaml.NewYAMLOrJSONDecoder(content, 4096).Decode(&cmc)
188195
if err != nil {
189196
return nil, err
190197
}
191198
c.ClusterMonitoringConfiguration = &cmc
192-
res := &c
193-
res.applyDefaults()
199+
c.applyDefaults()
194200
c.UserWorkloadConfiguration = NewDefaultUserWorkloadMonitoringConfig()
195201

196-
return res, nil
202+
legacy := &UserWorkloadLegacyConfiguration{}
203+
err = k8syaml.NewYAMLOrJSONDecoder(content, 4096).Decode(legacy)
204+
if err != nil {
205+
return nil, err
206+
}
207+
if legacy.PrometheusOperator != nil {
208+
c.UserWorkloadConfiguration.PrometheusOperator = legacy.PrometheusOperator
209+
}
210+
if legacy.Prometheus != nil {
211+
c.UserWorkloadConfiguration.Prometheus = legacy.Prometheus
212+
}
213+
if legacy.ThanosRuler != nil {
214+
c.UserWorkloadConfiguration.ThanosRuler = legacy.ThanosRuler
215+
}
216+
if legacy.TechPreviewUserWorkload != nil && legacy.TechPreviewUserWorkload.Enabled != nil && *legacy.TechPreviewUserWorkload.Enabled {
217+
enabled := true
218+
c.ClusterMonitoringConfiguration.UserWorkloadEnabled = &enabled
219+
}
220+
221+
return c, nil
197222
}
198223

199224
func (c *Config) applyDefaults() {
@@ -206,31 +231,19 @@ func (c *Config) applyDefaults() {
206231
if c.ClusterMonitoringConfiguration.PrometheusOperatorConfig == nil {
207232
c.ClusterMonitoringConfiguration.PrometheusOperatorConfig = &PrometheusOperatorConfig{}
208233
}
209-
if c.ClusterMonitoringConfiguration.PrometheusOperatorUserWorkloadConfig == nil {
210-
c.ClusterMonitoringConfiguration.PrometheusOperatorUserWorkloadConfig = &PrometheusOperatorConfig{}
211-
}
212234
if c.ClusterMonitoringConfiguration.PrometheusK8sConfig == nil {
213235
c.ClusterMonitoringConfiguration.PrometheusK8sConfig = &PrometheusK8sConfig{}
214236
}
215237
if c.ClusterMonitoringConfiguration.PrometheusK8sConfig.Retention == "" {
216238
c.ClusterMonitoringConfiguration.PrometheusK8sConfig.Retention = "15d"
217239
}
218-
if c.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig == nil {
219-
c.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig = &PrometheusK8sConfig{}
220-
}
221-
if c.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.Retention == "" {
222-
c.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.Retention = "15d"
223-
}
224240
if c.ClusterMonitoringConfiguration.AlertmanagerMainConfig == nil {
225241
c.ClusterMonitoringConfiguration.AlertmanagerMainConfig = &AlertmanagerMainConfig{}
226242
}
227243
if c.ClusterMonitoringConfiguration.UserWorkloadEnabled == nil {
228244
disable := false
229245
c.ClusterMonitoringConfiguration.UserWorkloadEnabled = &disable
230246
}
231-
if c.ClusterMonitoringConfiguration.ThanosRulerConfig == nil {
232-
c.ClusterMonitoringConfiguration.ThanosRulerConfig = &ThanosRulerConfig{}
233-
}
234247
if c.ClusterMonitoringConfiguration.ThanosQuerierConfig == nil {
235248
c.ClusterMonitoringConfiguration.ThanosQuerierConfig = &ThanosQuerierConfig{}
236249
}
@@ -257,9 +270,6 @@ func (c *Config) applyDefaults() {
257270
if c.ClusterMonitoringConfiguration.EtcdConfig == nil {
258271
c.ClusterMonitoringConfiguration.EtcdConfig = &EtcdConfig{}
259272
}
260-
if c.ClusterMonitoringConfiguration.UserWorkloadConfig == nil {
261-
c.ClusterMonitoringConfiguration.UserWorkloadConfig = &UserWorkloadConfig{}
262-
}
263273
}
264274

265275
func (c *Config) SetImages(images map[string]string) {
@@ -378,12 +388,6 @@ func NewDefaultConfig() *Config {
378388
return c
379389
}
380390

381-
type UserWorkloadConfiguration struct {
382-
PrometheusOperator *PrometheusOperatorConfig `json:"prometheusOperator"`
383-
Prometheus *PrometheusK8sConfig `json:"prometheus"`
384-
ThanosRuler *ThanosRulerConfig `json:"thanosRuler"`
385-
}
386-
387391
func (u *UserWorkloadConfiguration) applyDefaults() {
388392
if u.PrometheusOperator == nil {
389393
u.PrometheusOperator = &PrometheusOperatorConfig{}
@@ -420,18 +424,5 @@ func NewDefaultUserWorkloadMonitoringConfig() *UserWorkloadConfiguration {
420424
// IsUserWorkloadEnabled checks if user workload monitoring is
421425
// enabled on old or new configuration.
422426
func (c *Config) IsUserWorkloadEnabled() bool {
423-
if *c.ClusterMonitoringConfiguration.UserWorkloadEnabled == true {
424-
return true
425-
}
426-
427-
return c.ClusterMonitoringConfiguration.UserWorkloadConfig.isEnabled()
428-
}
429-
430-
// isEnabled returns the underlying value of the `Enabled` boolean pointer.
431-
// It defaults to false if the pointer is nil.
432-
func (c *UserWorkloadConfig) isEnabled() bool {
433-
if c.Enabled == nil {
434-
return false
435-
}
436-
return *c.Enabled
427+
return *c.ClusterMonitoringConfiguration.UserWorkloadEnabled
437428
}

Diff for: pkg/manifests/manifests.go

-70
Original file line numberDiff line numberDiff line change
@@ -1444,41 +1444,6 @@ func (f *Factory) PrometheusUserWorkload(grpcTLS *v1.Secret) (*monv1.Prometheus,
14441444
p.Spec.RemoteWrite = f.config.UserWorkloadConfiguration.Prometheus.RemoteWrite
14451445
}
14461446

1447-
// TODO: remove after 4.7
1448-
1449-
if f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.LogLevel != "" {
1450-
p.Spec.LogLevel = f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.LogLevel
1451-
}
1452-
1453-
if f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.Retention != "" {
1454-
p.Spec.Retention = f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.Retention
1455-
}
1456-
1457-
if f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.Resources != nil {
1458-
p.Spec.Resources = *f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.Resources
1459-
}
1460-
1461-
if f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.NodeSelector != nil {
1462-
p.Spec.NodeSelector = f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.NodeSelector
1463-
}
1464-
1465-
if len(f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.Tolerations) > 0 {
1466-
p.Spec.Tolerations = f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.Tolerations
1467-
}
1468-
1469-
if f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.ExternalLabels != nil {
1470-
p.Spec.ExternalLabels = f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.ExternalLabels
1471-
}
1472-
1473-
if f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.VolumeClaimTemplate != nil {
1474-
p.Spec.Storage = &monv1.StorageSpec{
1475-
VolumeClaimTemplate: *f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.VolumeClaimTemplate,
1476-
}
1477-
}
1478-
if len(f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.RemoteWrite) > 0 {
1479-
p.Spec.RemoteWrite = f.config.ClusterMonitoringConfiguration.PrometheusUserWorkloadConfig.RemoteWrite
1480-
}
1481-
// end removal
14821447
if f.config.Images.Thanos != "" {
14831448
p.Spec.Thanos.Image = &f.config.Images.Thanos
14841449
}
@@ -1885,17 +1850,6 @@ func (f *Factory) PrometheusOperatorUserWorkloadDeployment(denyNamespaces []stri
18851850
d.Spec.Template.Spec.Tolerations = f.config.UserWorkloadConfiguration.PrometheusOperator.Tolerations
18861851
}
18871852

1888-
// TODO: remove in 4.7
1889-
if len(f.config.ClusterMonitoringConfiguration.PrometheusOperatorUserWorkloadConfig.NodeSelector) > 0 {
1890-
d.Spec.Template.Spec.NodeSelector = f.config.ClusterMonitoringConfiguration.PrometheusOperatorUserWorkloadConfig.NodeSelector
1891-
}
1892-
1893-
if len(f.config.ClusterMonitoringConfiguration.PrometheusOperatorUserWorkloadConfig.Tolerations) > 0 {
1894-
d.Spec.Template.Spec.Tolerations = f.config.ClusterMonitoringConfiguration.PrometheusOperatorUserWorkloadConfig.Tolerations
1895-
}
1896-
1897-
// end of remove
1898-
18991853
d.Spec.Template.Spec.Containers[0].Image = f.config.Images.PrometheusOperator
19001854
d.Spec.Template.Spec.Containers[1].Image = f.config.Images.KubeRbacProxy
19011855

@@ -3078,30 +3032,6 @@ func (f *Factory) ThanosRulerCustomResource(queryURL string, trustedCA *v1.Confi
30783032
t.Spec.Tolerations = f.config.UserWorkloadConfiguration.ThanosRuler.Tolerations
30793033
}
30803034

3081-
// TODO: remove in 4.7
3082-
if f.config.ClusterMonitoringConfiguration.ThanosRulerConfig.LogLevel != "" {
3083-
t.Spec.LogLevel = f.config.ClusterMonitoringConfiguration.ThanosRulerConfig.LogLevel
3084-
}
3085-
3086-
if f.config.ClusterMonitoringConfiguration.ThanosRulerConfig.Resources != nil {
3087-
t.Spec.Resources = *f.config.ClusterMonitoringConfiguration.ThanosRulerConfig.Resources
3088-
}
3089-
3090-
if f.config.ClusterMonitoringConfiguration.ThanosRulerConfig.VolumeClaimTemplate != nil {
3091-
t.Spec.Storage = &monv1.StorageSpec{
3092-
VolumeClaimTemplate: *f.config.ClusterMonitoringConfiguration.ThanosRulerConfig.VolumeClaimTemplate,
3093-
}
3094-
}
3095-
3096-
if f.config.ClusterMonitoringConfiguration.ThanosRulerConfig.NodeSelector != nil {
3097-
t.Spec.NodeSelector = f.config.ClusterMonitoringConfiguration.ThanosRulerConfig.NodeSelector
3098-
}
3099-
3100-
if len(f.config.ClusterMonitoringConfiguration.ThanosRulerConfig.Tolerations) > 0 {
3101-
t.Spec.Tolerations = f.config.ClusterMonitoringConfiguration.ThanosRulerConfig.Tolerations
3102-
}
3103-
// end of remove
3104-
31053035
t.Spec.Containers[1].Image = f.config.Images.OauthProxy
31063036
setEnv := func(name, value string) {
31073037
for i := range t.Spec.Containers[1].Env {

0 commit comments

Comments
 (0)