...
1
16
17 package v1
18
19 import (
20 appsv1 "k8s.io/api/apps/v1"
21 "k8s.io/apimachinery/pkg/runtime"
22 "k8s.io/apimachinery/pkg/util/intstr"
23 utilfeature "k8s.io/apiserver/pkg/util/feature"
24 "k8s.io/kubernetes/pkg/features"
25 "k8s.io/utils/ptr"
26 )
27
28 func addDefaultingFuncs(scheme *runtime.Scheme) error {
29 return RegisterDefaults(scheme)
30 }
31
32
33
34
35
36
37
38 func SetDefaults_Deployment(obj *appsv1.Deployment) {
39
40 if obj.Spec.Replicas == nil {
41 obj.Spec.Replicas = new(int32)
42 *obj.Spec.Replicas = 1
43 }
44 strategy := &obj.Spec.Strategy
45
46 if strategy.Type == "" {
47 strategy.Type = appsv1.RollingUpdateDeploymentStrategyType
48 }
49 if strategy.Type == appsv1.RollingUpdateDeploymentStrategyType {
50 if strategy.RollingUpdate == nil {
51 rollingUpdate := appsv1.RollingUpdateDeployment{}
52 strategy.RollingUpdate = &rollingUpdate
53 }
54 if strategy.RollingUpdate.MaxUnavailable == nil {
55
56 maxUnavailable := intstr.FromString("25%")
57 strategy.RollingUpdate.MaxUnavailable = &maxUnavailable
58 }
59 if strategy.RollingUpdate.MaxSurge == nil {
60
61 maxSurge := intstr.FromString("25%")
62 strategy.RollingUpdate.MaxSurge = &maxSurge
63 }
64 }
65 if obj.Spec.RevisionHistoryLimit == nil {
66 obj.Spec.RevisionHistoryLimit = new(int32)
67 *obj.Spec.RevisionHistoryLimit = 10
68 }
69 if obj.Spec.ProgressDeadlineSeconds == nil {
70 obj.Spec.ProgressDeadlineSeconds = new(int32)
71 *obj.Spec.ProgressDeadlineSeconds = 600
72 }
73 }
74
75 func SetDefaults_DaemonSet(obj *appsv1.DaemonSet) {
76 updateStrategy := &obj.Spec.UpdateStrategy
77 if updateStrategy.Type == "" {
78 updateStrategy.Type = appsv1.RollingUpdateDaemonSetStrategyType
79 }
80 if updateStrategy.Type == appsv1.RollingUpdateDaemonSetStrategyType {
81 if updateStrategy.RollingUpdate == nil {
82 rollingUpdate := appsv1.RollingUpdateDaemonSet{}
83 updateStrategy.RollingUpdate = &rollingUpdate
84 }
85 if updateStrategy.RollingUpdate.MaxUnavailable == nil {
86
87 updateStrategy.RollingUpdate.MaxUnavailable = ptr.To(intstr.FromInt32(1))
88 }
89 if updateStrategy.RollingUpdate.MaxSurge == nil {
90
91 updateStrategy.RollingUpdate.MaxSurge = ptr.To(intstr.FromInt32(0))
92 }
93 }
94 if obj.Spec.RevisionHistoryLimit == nil {
95 obj.Spec.RevisionHistoryLimit = new(int32)
96 *obj.Spec.RevisionHistoryLimit = 10
97 }
98 }
99
100 func SetDefaults_StatefulSet(obj *appsv1.StatefulSet) {
101 if len(obj.Spec.PodManagementPolicy) == 0 {
102 obj.Spec.PodManagementPolicy = appsv1.OrderedReadyPodManagement
103 }
104
105 if obj.Spec.UpdateStrategy.Type == "" {
106 obj.Spec.UpdateStrategy.Type = appsv1.RollingUpdateStatefulSetStrategyType
107
108 if obj.Spec.UpdateStrategy.RollingUpdate == nil {
109
110 obj.Spec.UpdateStrategy.RollingUpdate = &appsv1.RollingUpdateStatefulSetStrategy{}
111 }
112 }
113
114 if obj.Spec.UpdateStrategy.Type == appsv1.RollingUpdateStatefulSetStrategyType &&
115 obj.Spec.UpdateStrategy.RollingUpdate != nil {
116
117 if obj.Spec.UpdateStrategy.RollingUpdate.Partition == nil {
118 obj.Spec.UpdateStrategy.RollingUpdate.Partition = ptr.To[int32](0)
119 }
120 if utilfeature.DefaultFeatureGate.Enabled(features.MaxUnavailableStatefulSet) {
121 if obj.Spec.UpdateStrategy.RollingUpdate.MaxUnavailable == nil {
122 obj.Spec.UpdateStrategy.RollingUpdate.MaxUnavailable = ptr.To(intstr.FromInt32(1))
123 }
124 }
125 }
126
127 if utilfeature.DefaultFeatureGate.Enabled(features.StatefulSetAutoDeletePVC) {
128 if obj.Spec.PersistentVolumeClaimRetentionPolicy == nil {
129 obj.Spec.PersistentVolumeClaimRetentionPolicy = &appsv1.StatefulSetPersistentVolumeClaimRetentionPolicy{}
130 }
131 if len(obj.Spec.PersistentVolumeClaimRetentionPolicy.WhenDeleted) == 0 {
132 obj.Spec.PersistentVolumeClaimRetentionPolicy.WhenDeleted = appsv1.RetainPersistentVolumeClaimRetentionPolicyType
133 }
134 if len(obj.Spec.PersistentVolumeClaimRetentionPolicy.WhenScaled) == 0 {
135 obj.Spec.PersistentVolumeClaimRetentionPolicy.WhenScaled = appsv1.RetainPersistentVolumeClaimRetentionPolicyType
136 }
137 }
138
139 if obj.Spec.Replicas == nil {
140 obj.Spec.Replicas = new(int32)
141 *obj.Spec.Replicas = 1
142 }
143 if obj.Spec.RevisionHistoryLimit == nil {
144 obj.Spec.RevisionHistoryLimit = new(int32)
145 *obj.Spec.RevisionHistoryLimit = 10
146 }
147 }
148 func SetDefaults_ReplicaSet(obj *appsv1.ReplicaSet) {
149 if obj.Spec.Replicas == nil {
150 obj.Spec.Replicas = new(int32)
151 *obj.Spec.Replicas = 1
152 }
153 }
154
View as plain text