Skip to content

Commit 769c984

Browse files
authored
internal/manifests/collector: switch internally to v1alpha2 (#2532)
* internal/manifests/collector: switch internally to v1alphav2 Signed-off-by: Benedikt Bongartz <[email protected]> * internal/manifests/collector: change svc account Signed-off-by: Benedikt Bongartz <[email protected]> * internal/api/convert: propagate ver upgrade error Signed-off-by: Benedikt Bongartz <[email protected]> * intern/{api,manifests}: directly call yaml unmarshal Signed-off-by: Benedikt Bongartz <[email protected]> * internal/api/convert: map DaemonSetUpdateStrategy Signed-off-by: Benedikt Bongartz <[email protected]> * internal/manifests/collector: migrate configmap Signed-off-by: Benedikt Bongartz <[email protected]> * internal/api/convert: use go-yaml instead of sig-yaml Signed-off-by: Benedikt Bongartz <[email protected]> * pkg/sidecar: upgrade internal use from v1alpha2 to v1alpha2 Signed-off-by: Benedikt Bongartz <[email protected]> * internal/manifests/collector: adapt cm, svc, ingress & route Signed-off-by: Benedikt Bongartz <[email protected]> * internal/api/convert: fix v1alpha1 to v1alpha2 Signed-off-by: Benedikt Bongartz <[email protected]> * internal/manifests/collector: evaluate returned error value in tests Signed-off-by: Benedikt Bongartz <[email protected]> * apis/v1alpha2: config yaml method Signed-off-by: Benedikt Bongartz <[email protected]> * internal/manifests/collector: use v1alpha2.Config yaml method Signed-off-by: Benedikt Bongartz <[email protected]> * controllers/builder: adapt ident in unit test Signed-off-by: Benedikt Bongartz <[email protected]> * internal/manifests/collector: fix test Signed-off-by: Benedikt Bongartz <[email protected]> * tests/e2e: align to new indentation Signed-off-by: Benedikt Bongartz <[email protected]> * internal/manifests/collector: cleanup Signed-off-by: Benedikt Bongartz <[email protected]> --------- Signed-off-by: Benedikt Bongartz <[email protected]>
1 parent d9a0715 commit 769c984

Some content is hidden

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

48 files changed

+1294
-649
lines changed

apis/v1alpha2/config.go

+14
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,13 @@
1515
package v1alpha2
1616

1717
import (
18+
"bytes"
1819
"encoding/json"
1920
"fmt"
2021
"reflect"
2122
"sort"
23+
24+
"gopkg.in/yaml.v3"
2225
)
2326

2427
// AnyConfig represent parts of the config.
@@ -84,6 +87,17 @@ type Config struct {
8487
Service Service `json:"service" yaml:"service"`
8588
}
8689

90+
// Yaml encodes the current object and returns it as a string.
91+
func (c Config) Yaml() (string, error) {
92+
var buf bytes.Buffer
93+
yamlEncoder := yaml.NewEncoder(&buf)
94+
yamlEncoder.SetIndent(2)
95+
if err := yamlEncoder.Encode(&c); err != nil {
96+
return "", err
97+
}
98+
return buf.String(), nil
99+
}
100+
87101
type Service struct {
88102
Extensions *[]string `json:"extensions,omitempty" yaml:"extensions,omitempty"`
89103
// +kubebuilder:pruning:PreserveUnknownFields

apis/v1alpha2/config_test.go

+74
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,77 @@ func TestNullObjects_go_yaml(t *testing.T) {
110110
nullObjects := cfg.nullObjects()
111111
assert.Equal(t, []string{"connectors.spanmetrics:", "exporters.otlp.endpoint:", "extensions.health_check:", "processors.batch:", "receivers.otlp.protocols.grpc:", "receivers.otlp.protocols.http:"}, nullObjects)
112112
}
113+
114+
func TestConfigYaml(t *testing.T) {
115+
cfg := &Config{
116+
Receivers: AnyConfig{
117+
Object: map[string]interface{}{
118+
"otlp": nil,
119+
},
120+
},
121+
Processors: &AnyConfig{
122+
Object: map[string]interface{}{
123+
"modify_2000": "enabled",
124+
},
125+
},
126+
Exporters: AnyConfig{
127+
Object: map[string]interface{}{
128+
"otlp/exporter": nil,
129+
},
130+
},
131+
Connectors: &AnyConfig{
132+
Object: map[string]interface{}{
133+
"con": "magic",
134+
},
135+
},
136+
Extensions: &AnyConfig{
137+
Object: map[string]interface{}{
138+
"addon": "option1",
139+
},
140+
},
141+
Service: Service{
142+
Extensions: &[]string{"addon"},
143+
Telemetry: &AnyConfig{
144+
Object: map[string]interface{}{
145+
"insights": "yeah!",
146+
},
147+
},
148+
Pipelines: AnyConfig{
149+
Object: map[string]interface{}{
150+
"receivers": []string{"otlp"},
151+
"processors": []string{"modify_2000"},
152+
"exporters": []string{"otlp/exporter", "con"},
153+
},
154+
},
155+
},
156+
}
157+
yamlCollector, err := cfg.Yaml()
158+
require.NoError(t, err)
159+
160+
const expected = `receivers:
161+
otlp: null
162+
exporters:
163+
otlp/exporter: null
164+
processors:
165+
modify_2000: enabled
166+
connectors:
167+
con: magic
168+
extensions:
169+
addon: option1
170+
service:
171+
extensions:
172+
- addon
173+
telemetry:
174+
insights: yeah!
175+
pipelines:
176+
exporters:
177+
- otlp/exporter
178+
- con
179+
processors:
180+
- modify_2000
181+
receivers:
182+
- otlp
183+
`
184+
185+
assert.Equal(t, expected, yamlCollector)
186+
}

controllers/builder_test.go

+15-15
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ service:
125125
"app.kubernetes.io/version": "latest",
126126
},
127127
Annotations: map[string]string{
128-
"opentelemetry-operator-config/sha256": "8188c85abd4aa5e9c798874b4f47d37f08d4778933154e3f7d60246510ed9dd2",
128+
"opentelemetry-operator-config/sha256": "6f6f11da374b2c1e42fc78fbe55e2d9bcc2f5998ab63a631b49c478e8c0f6af8",
129129
"prometheus.io/path": "/metrics",
130130
"prometheus.io/port": "8888",
131131
"prometheus.io/scrape": "true",
@@ -147,7 +147,7 @@ service:
147147
"app.kubernetes.io/version": "latest",
148148
},
149149
Annotations: map[string]string{
150-
"opentelemetry-operator-config/sha256": "8188c85abd4aa5e9c798874b4f47d37f08d4778933154e3f7d60246510ed9dd2",
150+
"opentelemetry-operator-config/sha256": "6f6f11da374b2c1e42fc78fbe55e2d9bcc2f5998ab63a631b49c478e8c0f6af8",
151151
"prometheus.io/path": "/metrics",
152152
"prometheus.io/port": "8888",
153153
"prometheus.io/scrape": "true",
@@ -232,7 +232,7 @@ service:
232232
Annotations: nil,
233233
},
234234
Data: map[string]string{
235-
"collector.yaml": "receivers:\n examplereceiver:\n endpoint: \"0.0.0.0:12345\"\nexporters:\n logging:\nservice:\n pipelines:\n metrics:\n receivers: [examplereceiver]\n exporters: [logging]\n",
235+
"collector.yaml": "receivers:\n examplereceiver:\n endpoint: 0.0.0.0:12345\nexporters:\n logging: null\nservice:\n pipelines:\n metrics:\n exporters:\n - logging\n receivers:\n - examplereceiver\n",
236236
},
237237
},
238238
&corev1.ServiceAccount{
@@ -369,7 +369,7 @@ service:
369369
"app.kubernetes.io/version": "latest",
370370
},
371371
Annotations: map[string]string{
372-
"opentelemetry-operator-config/sha256": "8188c85abd4aa5e9c798874b4f47d37f08d4778933154e3f7d60246510ed9dd2",
372+
"opentelemetry-operator-config/sha256": "6f6f11da374b2c1e42fc78fbe55e2d9bcc2f5998ab63a631b49c478e8c0f6af8",
373373
"prometheus.io/path": "/metrics",
374374
"prometheus.io/port": "8888",
375375
"prometheus.io/scrape": "true",
@@ -391,7 +391,7 @@ service:
391391
"app.kubernetes.io/version": "latest",
392392
},
393393
Annotations: map[string]string{
394-
"opentelemetry-operator-config/sha256": "8188c85abd4aa5e9c798874b4f47d37f08d4778933154e3f7d60246510ed9dd2",
394+
"opentelemetry-operator-config/sha256": "6f6f11da374b2c1e42fc78fbe55e2d9bcc2f5998ab63a631b49c478e8c0f6af8",
395395
"prometheus.io/path": "/metrics",
396396
"prometheus.io/port": "8888",
397397
"prometheus.io/scrape": "true",
@@ -476,7 +476,7 @@ service:
476476
Annotations: nil,
477477
},
478478
Data: map[string]string{
479-
"collector.yaml": "receivers:\n examplereceiver:\n endpoint: \"0.0.0.0:12345\"\nexporters:\n logging:\nservice:\n pipelines:\n metrics:\n receivers: [examplereceiver]\n exporters: [logging]\n",
479+
"collector.yaml": "receivers:\n examplereceiver:\n endpoint: 0.0.0.0:12345\nexporters:\n logging: null\nservice:\n pipelines:\n metrics:\n exporters:\n - logging\n receivers:\n - examplereceiver\n",
480480
},
481481
},
482482
&corev1.ServiceAccount{
@@ -646,7 +646,7 @@ service:
646646
"app.kubernetes.io/version": "latest",
647647
},
648648
Annotations: map[string]string{
649-
"opentelemetry-operator-config/sha256": "8188c85abd4aa5e9c798874b4f47d37f08d4778933154e3f7d60246510ed9dd2",
649+
"opentelemetry-operator-config/sha256": "6f6f11da374b2c1e42fc78fbe55e2d9bcc2f5998ab63a631b49c478e8c0f6af8",
650650
"prometheus.io/path": "/metrics",
651651
"prometheus.io/port": "8888",
652652
"prometheus.io/scrape": "true",
@@ -668,7 +668,7 @@ service:
668668
"app.kubernetes.io/version": "latest",
669669
},
670670
Annotations: map[string]string{
671-
"opentelemetry-operator-config/sha256": "8188c85abd4aa5e9c798874b4f47d37f08d4778933154e3f7d60246510ed9dd2",
671+
"opentelemetry-operator-config/sha256": "6f6f11da374b2c1e42fc78fbe55e2d9bcc2f5998ab63a631b49c478e8c0f6af8",
672672
"prometheus.io/path": "/metrics",
673673
"prometheus.io/port": "8888",
674674
"prometheus.io/scrape": "true",
@@ -753,7 +753,7 @@ service:
753753
Annotations: nil,
754754
},
755755
Data: map[string]string{
756-
"collector.yaml": "receivers:\n examplereceiver:\n endpoint: \"0.0.0.0:12345\"\nexporters:\n logging:\nservice:\n pipelines:\n metrics:\n receivers: [examplereceiver]\n exporters: [logging]\n",
756+
"collector.yaml": "receivers:\n examplereceiver:\n endpoint: 0.0.0.0:12345\nexporters:\n logging: null\nservice:\n pipelines:\n metrics:\n exporters:\n - logging\n receivers:\n - examplereceiver\n",
757757
},
758758
},
759759
&corev1.Service{
@@ -1157,7 +1157,7 @@ service:
11571157
"app.kubernetes.io/version": "latest",
11581158
},
11591159
Annotations: map[string]string{
1160-
"opentelemetry-operator-config/sha256": "5fe4d7d7faf3247bd7ec88688c9f73618f9ab8e170362bd7203c54e7a2f5cec0",
1160+
"opentelemetry-operator-config/sha256": "39cae697770f9d7e183e8fa9ba56043315b62e19c7231537870acfaaabc30a43",
11611161
"prometheus.io/path": "/metrics",
11621162
"prometheus.io/port": "8888",
11631163
"prometheus.io/scrape": "true",
@@ -1180,7 +1180,7 @@ service:
11801180
"app.kubernetes.io/version": "latest",
11811181
},
11821182
Annotations: map[string]string{
1183-
"opentelemetry-operator-config/sha256": "5fe4d7d7faf3247bd7ec88688c9f73618f9ab8e170362bd7203c54e7a2f5cec0",
1183+
"opentelemetry-operator-config/sha256": "39cae697770f9d7e183e8fa9ba56043315b62e19c7231537870acfaaabc30a43",
11841184
"prometheus.io/path": "/metrics",
11851185
"prometheus.io/port": "8888",
11861186
"prometheus.io/scrape": "true",
@@ -1265,7 +1265,7 @@ service:
12651265
Annotations: nil,
12661266
},
12671267
Data: map[string]string{
1268-
"collector.yaml": "exporters:\n logging: null\nreceivers:\n prometheus:\n config: {}\n target_allocator:\n collector_id: ${POD_NAME}\n endpoint: http://test-targetallocator:80\n interval: 30s\nservice:\n pipelines:\n metrics:\n exporters:\n - logging\n receivers:\n - prometheus\n",
1268+
"collector.yaml": "exporters:\n logging: null\nreceivers:\n prometheus:\n config: {}\n target_allocator:\n collector_id: ${POD_NAME}\n endpoint: http://test-targetallocator:80\n interval: 30s\nservice:\n pipelines:\n metrics:\n exporters:\n - logging\n receivers:\n - prometheus\n",
12691269
},
12701270
},
12711271
&corev1.ServiceAccount{
@@ -1556,7 +1556,7 @@ prometheus_cr:
15561556
"app.kubernetes.io/version": "latest",
15571557
},
15581558
Annotations: map[string]string{
1559-
"opentelemetry-operator-config/sha256": "5fe4d7d7faf3247bd7ec88688c9f73618f9ab8e170362bd7203c54e7a2f5cec0",
1559+
"opentelemetry-operator-config/sha256": "39cae697770f9d7e183e8fa9ba56043315b62e19c7231537870acfaaabc30a43",
15601560
"prometheus.io/path": "/metrics",
15611561
"prometheus.io/port": "8888",
15621562
"prometheus.io/scrape": "true",
@@ -1579,7 +1579,7 @@ prometheus_cr:
15791579
"app.kubernetes.io/version": "latest",
15801580
},
15811581
Annotations: map[string]string{
1582-
"opentelemetry-operator-config/sha256": "5fe4d7d7faf3247bd7ec88688c9f73618f9ab8e170362bd7203c54e7a2f5cec0",
1582+
"opentelemetry-operator-config/sha256": "39cae697770f9d7e183e8fa9ba56043315b62e19c7231537870acfaaabc30a43",
15831583
"prometheus.io/path": "/metrics",
15841584
"prometheus.io/port": "8888",
15851585
"prometheus.io/scrape": "true",
@@ -1664,7 +1664,7 @@ prometheus_cr:
16641664
Annotations: nil,
16651665
},
16661666
Data: map[string]string{
1667-
"collector.yaml": "exporters:\n logging: null\nreceivers:\n prometheus:\n config: {}\n target_allocator:\n collector_id: ${POD_NAME}\n endpoint: http://test-targetallocator:80\n interval: 30s\nservice:\n pipelines:\n metrics:\n exporters:\n - logging\n receivers:\n - prometheus\n",
1667+
"collector.yaml": "exporters:\n logging: null\nreceivers:\n prometheus:\n config: {}\n target_allocator:\n collector_id: ${POD_NAME}\n endpoint: http://test-targetallocator:80\n interval: 30s\nservice:\n pipelines:\n metrics:\n exporters:\n - logging\n receivers:\n - prometheus\n",
16681668
},
16691669
},
16701670
&corev1.ServiceAccount{

internal/api/convert/v1alpha.go

+150
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
// Copyright The OpenTelemetry Authors
2+
//
3+
// Licensed under the Apache License, Version 2.0 (the "License");
4+
// you may not use this file except in compliance with the License.
5+
// You may obtain a copy of the License at
6+
//
7+
// http://www.apache.org/licenses/LICENSE-2.0
8+
//
9+
// Unless required by applicable law or agreed to in writing, software
10+
// distributed under the License is distributed on an "AS IS" BASIS,
11+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
// See the License for the specific language governing permissions and
13+
// limitations under the License.
14+
15+
package convert
16+
17+
import (
18+
"errors"
19+
20+
"gopkg.in/yaml.v3"
21+
22+
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha1"
23+
"github.com/open-telemetry/opentelemetry-operator/apis/v1alpha2"
24+
)
25+
26+
func V1Alpha1to2(in v1alpha1.OpenTelemetryCollector) (v1alpha2.OpenTelemetryCollector, error) {
27+
copy := in.DeepCopy()
28+
out := v1alpha2.OpenTelemetryCollector{
29+
TypeMeta: copy.TypeMeta,
30+
ObjectMeta: copy.ObjectMeta,
31+
}
32+
33+
cfg := &v1alpha2.Config{}
34+
if err := yaml.Unmarshal([]byte(in.Spec.Config), cfg); err != nil {
35+
return v1alpha2.OpenTelemetryCollector{}, errors.New("could not convert config json to v1alpha2.Config")
36+
}
37+
out.Spec.Config = *cfg
38+
39+
out.Spec.OpenTelemetryCommonFields.ManagementState = v1alpha2.ManagementStateType(copy.Spec.ManagementState)
40+
out.Spec.OpenTelemetryCommonFields.Resources = copy.Spec.Resources
41+
out.Spec.OpenTelemetryCommonFields.NodeSelector = copy.Spec.NodeSelector
42+
out.Spec.OpenTelemetryCommonFields.Args = copy.Spec.NodeSelector
43+
out.Spec.OpenTelemetryCommonFields.Replicas = copy.Spec.Replicas
44+
45+
if copy.Spec.Autoscaler != nil {
46+
metrics := make([]v1alpha2.MetricSpec, len(copy.Spec.Autoscaler.Metrics))
47+
for i, m := range copy.Spec.Autoscaler.Metrics {
48+
metrics[i] = v1alpha2.MetricSpec{
49+
Type: m.Type,
50+
Pods: m.Pods,
51+
}
52+
}
53+
out.Spec.OpenTelemetryCommonFields.Autoscaler = &v1alpha2.AutoscalerSpec{
54+
MinReplicas: copy.Spec.Autoscaler.MinReplicas,
55+
MaxReplicas: copy.Spec.Autoscaler.MaxReplicas,
56+
Behavior: copy.Spec.Autoscaler.Behavior,
57+
Metrics: metrics,
58+
TargetCPUUtilization: copy.Spec.Autoscaler.TargetCPUUtilization,
59+
TargetMemoryUtilization: copy.Spec.Autoscaler.TargetMemoryUtilization,
60+
}
61+
}
62+
63+
if copy.Spec.PodDisruptionBudget != nil {
64+
out.Spec.OpenTelemetryCommonFields.PodDisruptionBudget = &v1alpha2.PodDisruptionBudgetSpec{
65+
MinAvailable: copy.Spec.PodDisruptionBudget.MinAvailable,
66+
MaxUnavailable: copy.Spec.PodDisruptionBudget.MaxUnavailable,
67+
}
68+
}
69+
if copy.Spec.SecurityContext != nil {
70+
out.Spec.OpenTelemetryCommonFields.SecurityContext = copy.Spec.SecurityContext
71+
}
72+
if copy.Spec.PodSecurityContext != nil {
73+
out.Spec.OpenTelemetryCommonFields.PodSecurityContext = copy.Spec.PodSecurityContext
74+
}
75+
out.Spec.OpenTelemetryCommonFields.PodAnnotations = copy.Spec.PodAnnotations
76+
out.Spec.OpenTelemetryCommonFields.ServiceAccount = copy.Spec.ServiceAccount
77+
out.Spec.OpenTelemetryCommonFields.Image = copy.Spec.Image
78+
out.Spec.OpenTelemetryCommonFields.ImagePullPolicy = copy.Spec.ImagePullPolicy
79+
out.Spec.OpenTelemetryCommonFields.VolumeMounts = copy.Spec.VolumeMounts
80+
out.Spec.OpenTelemetryCommonFields.Ports = copy.Spec.Ports
81+
out.Spec.OpenTelemetryCommonFields.Env = copy.Spec.Env
82+
out.Spec.OpenTelemetryCommonFields.EnvFrom = copy.Spec.EnvFrom
83+
out.Spec.OpenTelemetryCommonFields.VolumeClaimTemplates = copy.Spec.VolumeClaimTemplates
84+
out.Spec.OpenTelemetryCommonFields.Tolerations = copy.Spec.Tolerations
85+
out.Spec.OpenTelemetryCommonFields.Volumes = copy.Spec.Volumes
86+
out.Spec.OpenTelemetryCommonFields.Affinity = copy.Spec.Affinity
87+
out.Spec.OpenTelemetryCommonFields.Lifecycle = copy.Spec.Lifecycle
88+
out.Spec.OpenTelemetryCommonFields.TerminationGracePeriodSeconds = copy.Spec.TerminationGracePeriodSeconds
89+
out.Spec.OpenTelemetryCommonFields.TopologySpreadConstraints = copy.Spec.TopologySpreadConstraints
90+
out.Spec.OpenTelemetryCommonFields.HostNetwork = copy.Spec.HostNetwork
91+
out.Spec.OpenTelemetryCommonFields.ShareProcessNamespace = copy.Spec.ShareProcessNamespace
92+
out.Spec.OpenTelemetryCommonFields.PriorityClassName = copy.Spec.PriorityClassName
93+
out.Spec.OpenTelemetryCommonFields.InitContainers = copy.Spec.InitContainers
94+
out.Spec.OpenTelemetryCommonFields.AdditionalContainers = copy.Spec.AdditionalContainers
95+
96+
out.Spec.TargetAllocator.Replicas = copy.Spec.TargetAllocator.Replicas
97+
out.Spec.TargetAllocator.NodeSelector = copy.Spec.TargetAllocator.NodeSelector
98+
out.Spec.TargetAllocator.Resources = copy.Spec.TargetAllocator.Resources
99+
out.Spec.TargetAllocator.AllocationStrategy = copy.Spec.TargetAllocator.AllocationStrategy
100+
out.Spec.TargetAllocator.FilterStrategy = copy.Spec.TargetAllocator.FilterStrategy
101+
out.Spec.TargetAllocator.ServiceAccount = copy.Spec.TargetAllocator.ServiceAccount
102+
out.Spec.TargetAllocator.Image = copy.Spec.TargetAllocator.Image
103+
out.Spec.TargetAllocator.Enabled = copy.Spec.TargetAllocator.Enabled
104+
out.Spec.TargetAllocator.Affinity = copy.Spec.TargetAllocator.Affinity
105+
out.Spec.TargetAllocator.PrometheusCR.Enabled = copy.Spec.TargetAllocator.PrometheusCR.Enabled
106+
out.Spec.TargetAllocator.PrometheusCR.ScrapeInterval = copy.Spec.TargetAllocator.PrometheusCR.ScrapeInterval
107+
out.Spec.TargetAllocator.PrometheusCR.PodMonitorSelector = copy.Spec.TargetAllocator.PrometheusCR.PodMonitorSelector
108+
out.Spec.TargetAllocator.PrometheusCR.ServiceMonitorSelector = copy.Spec.TargetAllocator.PrometheusCR.ServiceMonitorSelector
109+
out.Spec.TargetAllocator.SecurityContext = copy.Spec.TargetAllocator.SecurityContext
110+
out.Spec.TargetAllocator.PodSecurityContext = copy.Spec.TargetAllocator.PodSecurityContext
111+
out.Spec.TargetAllocator.TopologySpreadConstraints = copy.Spec.TargetAllocator.TopologySpreadConstraints
112+
out.Spec.TargetAllocator.Tolerations = copy.Spec.TargetAllocator.Tolerations
113+
out.Spec.TargetAllocator.Env = copy.Spec.TargetAllocator.Env
114+
out.Spec.TargetAllocator.Observability = v1alpha1.ObservabilitySpec{
115+
Metrics: v1alpha1.MetricsConfigSpec{
116+
EnableMetrics: copy.Spec.TargetAllocator.Observability.Metrics.EnableMetrics,
117+
},
118+
}
119+
out.Spec.TargetAllocator.PodDisruptionBudget = copy.Spec.TargetAllocator.PodDisruptionBudget
120+
121+
out.Spec.Mode = v1alpha2.Mode(copy.Spec.Mode)
122+
out.Spec.UpgradeStrategy = v1alpha2.UpgradeStrategy(copy.Spec.UpgradeStrategy)
123+
out.Spec.Ingress.Type = v1alpha2.IngressType(copy.Spec.Ingress.Type)
124+
out.Spec.Ingress.RuleType = v1alpha2.IngressRuleType(copy.Spec.Ingress.RuleType)
125+
out.Spec.Ingress.Hostname = copy.Spec.Ingress.Hostname
126+
out.Spec.Ingress.Annotations = copy.Spec.Ingress.Annotations
127+
out.Spec.Ingress.TLS = copy.Spec.Ingress.TLS
128+
out.Spec.Ingress.IngressClassName = copy.Spec.Ingress.IngressClassName
129+
out.Spec.Ingress.Route.Termination = v1alpha2.TLSRouteTerminationType(copy.Spec.Ingress.Route.Termination)
130+
131+
if copy.Spec.LivenessProbe != nil {
132+
out.Spec.LivenessProbe = &v1alpha2.Probe{
133+
InitialDelaySeconds: copy.Spec.LivenessProbe.InitialDelaySeconds,
134+
TimeoutSeconds: copy.Spec.LivenessProbe.TimeoutSeconds,
135+
PeriodSeconds: copy.Spec.LivenessProbe.PeriodSeconds,
136+
SuccessThreshold: copy.Spec.LivenessProbe.SuccessThreshold,
137+
FailureThreshold: copy.Spec.LivenessProbe.FailureThreshold,
138+
TerminationGracePeriodSeconds: copy.Spec.LivenessProbe.TerminationGracePeriodSeconds,
139+
}
140+
}
141+
142+
out.Spec.Observability.Metrics.EnableMetrics = copy.Spec.Observability.Metrics.EnableMetrics
143+
144+
out.Spec.ConfigMaps = copy.Spec.ConfigMaps
145+
out.Spec.DaemonSetUpdateStrategy = copy.Spec.UpdateStrategy
146+
out.Spec.DeploymentUpdateStrategy.Type = copy.Spec.DeploymentUpdateStrategy.Type
147+
out.Spec.DeploymentUpdateStrategy.RollingUpdate = copy.Spec.DeploymentUpdateStrategy.RollingUpdate
148+
149+
return out, nil
150+
}

0 commit comments

Comments
 (0)