@@ -97,12 +97,10 @@ type VolumeSource struct {
97
97
98
98
// Volume our slimmed down version of Volume
99
99
type Volume struct {
100
- // +kubebuilder:validation:Required
101
100
// Name of the volume
102
- Name string `json:"name"`
103
- // +kubebuilder:validation:Required
101
+ Name string `json:"name" protobuf:"bytes,1,opt,name=name"`
104
102
// VolumeSource defines the source of a volume to be mounted
105
- VolumeSource VolumeSource `json:"volumeSource"`
103
+ VolumeSource VolumeSource `json:",inline" protobuf:"bytes,2,opt,name= volumeSource"`
106
104
}
107
105
108
106
// VolMounts is the data structure used to expose Volumes and Mounts that can
@@ -167,13 +165,16 @@ func (s *VolumeSource) ToCoreVolumeSource() (*corev1.VolumeSource, error) {
167
165
168
166
// ToCoreVolume - convert Volume to corev1.Volume
169
167
func (s * Volume ) ToCoreVolume () (* corev1.Volume , error ) {
170
- volSource , err := s .VolumeSource .ToCoreVolumeSource ()
168
+ coreVolume := & corev1.Volume {}
169
+
170
+ coreVolumeBytes , err := json .Marshal (s )
171
171
if err != nil {
172
- return nil , err
172
+ return nil , fmt . Errorf ( "error marshalling Volume: %w" , err )
173
173
}
174
- coreVolume := & corev1. Volume {
175
- Name : s . Name ,
176
- VolumeSource : * volSource ,
174
+ err = json . Unmarshal ( coreVolumeBytes , coreVolume )
175
+ if err != nil {
176
+ return nil , fmt . Errorf ( "error unmarshalling Volume: %w" , err )
177
177
}
178
+
178
179
return coreVolume , nil
179
180
}
0 commit comments