@@ -27,12 +27,14 @@ import (
2727 apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
2828 apierrors "k8s.io/apimachinery/pkg/api/errors"
2929 "k8s.io/apimachinery/pkg/api/meta"
30+ "k8s.io/apimachinery/pkg/api/resource"
3031 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3132 "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
3233 "k8s.io/apimachinery/pkg/runtime"
3334 "k8s.io/apimachinery/pkg/runtime/schema"
3435 "k8s.io/apimachinery/pkg/types"
3536 utilrand "k8s.io/apimachinery/pkg/util/rand"
37+ pvutil "k8s.io/component-helpers/storage/volume"
3638 "k8s.io/kubectl/pkg/util/deployment"
3739 "k8s.io/utils/ptr"
3840
@@ -243,6 +245,60 @@ func TestGenerateResourceContent(t *testing.T) {
243245 },
244246 },
245247 },
248+ "PersistentVolumeClaim with node-specific annotations" : {
249+ resource : corev1.PersistentVolumeClaim {
250+ TypeMeta : metav1.TypeMeta {
251+ APIVersion : "v1" ,
252+ Kind : "PersistentVolumeClaim" ,
253+ },
254+ ObjectMeta : metav1.ObjectMeta {
255+ Name : "test-pvc" ,
256+ Namespace : "test-namespace" ,
257+ Annotations : map [string ]string {
258+ pvutil .AnnSelectedNode : "hub-control-plane" ,
259+ pvutil .AnnBindCompleted : "yes" ,
260+ pvutil .AnnBoundByController : "yes" ,
261+ pvutil .AnnBetaStorageProvisioner : "kubernetes.io/no-provisioner" ,
262+ "custom-annotation" : "should-remain" ,
263+ },
264+ },
265+ Spec : corev1.PersistentVolumeClaimSpec {
266+ AccessModes : []corev1.PersistentVolumeAccessMode {
267+ corev1 .ReadWriteOnce ,
268+ },
269+ Resources : corev1.VolumeResourceRequirements {
270+ Requests : corev1.ResourceList {
271+ corev1 .ResourceStorage : resource .MustParse ("1Gi" ),
272+ },
273+ },
274+ StorageClassName : ptr .To ("standard" ),
275+ },
276+ },
277+ wantResource : corev1.PersistentVolumeClaim {
278+ TypeMeta : metav1.TypeMeta {
279+ APIVersion : "v1" ,
280+ Kind : "PersistentVolumeClaim" ,
281+ },
282+ ObjectMeta : metav1.ObjectMeta {
283+ Name : "test-pvc" ,
284+ Namespace : "test-namespace" ,
285+ Annotations : map [string ]string {
286+ "custom-annotation" : "should-remain" ,
287+ },
288+ },
289+ Spec : corev1.PersistentVolumeClaimSpec {
290+ AccessModes : []corev1.PersistentVolumeAccessMode {
291+ corev1 .ReadWriteOnce ,
292+ },
293+ Resources : corev1.VolumeResourceRequirements {
294+ Requests : corev1.ResourceList {
295+ corev1 .ResourceStorage : resource .MustParse ("1Gi" ),
296+ },
297+ },
298+ StorageClassName : ptr .To ("standard" ),
299+ },
300+ },
301+ },
246302 }
247303
248304 for testName , tt := range tests {
0 commit comments