mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-22 03:11:40 +00:00
Merge pull request #78997 from j-griffith/fix_nil_pointer
Fix nil pointer
This commit is contained in:
commit
fc33ddc285
@ -60,15 +60,20 @@ func dataSourceInUse(oldPVCSpec *core.PersistentVolumeClaimSpec) bool {
|
||||
|
||||
func dataSourceIsEnabled(pvcSpec *core.PersistentVolumeClaimSpec) bool {
|
||||
if pvcSpec.DataSource != nil {
|
||||
if pvcSpec.DataSource.Kind == pvc &&
|
||||
*pvcSpec.DataSource.APIGroup == "" &&
|
||||
utilfeature.DefaultFeatureGate.Enabled(features.VolumePVCDataSource) {
|
||||
apiGroup := ""
|
||||
if pvcSpec.DataSource.APIGroup != nil {
|
||||
apiGroup = *pvcSpec.DataSource.APIGroup
|
||||
}
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.VolumePVCDataSource) &&
|
||||
pvcSpec.DataSource.Kind == pvc &&
|
||||
apiGroup == "" {
|
||||
return true
|
||||
|
||||
}
|
||||
if pvcSpec.DataSource.Kind == volumeSnapshot &&
|
||||
*pvcSpec.DataSource.APIGroup == "snapshot.storage.k8s.io" &&
|
||||
utilfeature.DefaultFeatureGate.Enabled(features.VolumeSnapshotDataSource) {
|
||||
|
||||
if utilfeature.DefaultFeatureGate.Enabled(features.VolumeSnapshotDataSource) &&
|
||||
pvcSpec.DataSource.Kind == volumeSnapshot &&
|
||||
apiGroup == "snapshot.storage.k8s.io" {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
@ -221,6 +221,12 @@ func TestPVCDataSourceSpecFilter(t *testing.T) {
|
||||
Name: "test_clone",
|
||||
},
|
||||
}
|
||||
validSpecNilAPIGroup := core.PersistentVolumeClaimSpec{
|
||||
DataSource: &core.TypedLocalObjectReference{
|
||||
Kind: "PersistentVolumeClaim",
|
||||
Name: "test_clone",
|
||||
},
|
||||
}
|
||||
|
||||
invalidAPIGroup := "invalid.pvc.api.group"
|
||||
invalidSpec := core.PersistentVolumeClaimSpec{
|
||||
@ -266,6 +272,16 @@ func TestPVCDataSourceSpecFilter(t *testing.T) {
|
||||
gateEnabled: false,
|
||||
want: nil,
|
||||
},
|
||||
"enabled with valid spec but nil APIGroup": {
|
||||
spec: validSpecNilAPIGroup,
|
||||
gateEnabled: true,
|
||||
want: validSpecNilAPIGroup.DataSource,
|
||||
},
|
||||
"disabled with valid spec but nil APIGroup": {
|
||||
spec: validSpecNilAPIGroup,
|
||||
gateEnabled: false,
|
||||
want: nil,
|
||||
},
|
||||
}
|
||||
|
||||
for testName, test := range tests {
|
||||
|
Loading…
Reference in New Issue
Block a user