k8s-cluster-api 0.8.1

Kubernetes Cluster API (CAPI) Rust definitions
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
use super::*;

use kube::ResourceExt;
use serde_json as json;

#[test]
fn de() {
    let cluster: AWSCluster = json::from_str(CLUSTER).unwrap();

    assert_eq!(cluster.name(), "mgmt1");

    let spec = cluster.spec;
    let status = cluster.status.unwrap();

    assert_eq!(spec.region(), Some("us-east-2"));
    assert_eq!(spec.vpc_id(), Some("vpc-08a54407270d43458"));
    assert!(status.ready());

    let cluster: AWSCluster = json::from_str(CLUSTER2).unwrap();

    assert_eq!(cluster.name(), "pop-4");

    let spec = cluster.spec;
    let status = cluster.status.unwrap();

    assert_eq!(spec.region(), Some("us-east-2"));
    assert_eq!(spec.vpc_id(), Some("vpc-0b3042b77678a07c5"));
    assert!(!status.ready());
}

const CLUSTER: &str = r#"
{
    "apiVersion": "infrastructure.cluster.x-k8s.io/v1beta1",
    "kind": "AWSCluster",
    "metadata": {
        "annotations": {
            "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"infrastructure.cluster.x-k8s.io/v1beta1\",\"kind\":\"AWSCluster\",\"metadata\":{\"annotations\":{},\"name\":\"mgmt1\",\"namespace\":\"default\"},\"spec\":{\"network\":{\"subnets\":[{\"availabilityZone\":\"us-east-2a\",\"cidrBlock\":\"10.131.0.16/28\",\"isPublic\":true},{\"availabilityZone\":\"us-east-2a\",\"cidrBlock\":\"10.31.0.16/28\"},{\"availabilityZone\":\"us-east-2b\",\"cidrBlock\":\"10.131.0.32/28\",\"isPublic\":true},{\"availabilityZone\":\"us-east-2b\",\"cidrBlock\":\"10.31.0.32/28\"}],\"vpc\":{\"cidrBlock\":\"10.31.0.16/28\"}},\"region\":\"us-east-2\",\"spec\":null,\"sshKeyName\":\"replixio\"}}\n"
        },
        "creationTimestamp": "2021-11-30T13:35:07Z",
        "finalizers": [
            "awscluster.infrastructure.cluster.x-k8s.io"
        ],
        "generation": 10,
        "labels": {
            "cluster.x-k8s.io/cluster-name": "mgmt1"
        },
        "managedFields": [
            {
                "apiVersion": "infrastructure.cluster.x-k8s.io/v1beta1",
                "fieldsType": "FieldsV1",
                "fieldsV1": {
                    "f:metadata": {
                        "f:labels": {
                            ".": {},
                            "f:cluster.x-k8s.io/cluster-name": {}
                        },
                        "f:ownerReferences": {
                            ".": {},
                            "k:{\"uid\":\"94f05757-dcc1-447c-b020-844301437928\"}": {
                                ".": {},
                                "f:apiVersion": {},
                                "f:blockOwnerDeletion": {},
                                "f:controller": {},
                                "f:kind": {},
                                "f:name": {},
                                "f:uid": {}
                            }
                        }
                    }
                },
                "manager": "manager",
                "operation": "Update",
                "time": "2021-11-30T13:35:31Z"
            },
            {
                "apiVersion": "infrastructure.cluster.x-k8s.io/v1beta1",
                "fieldsType": "FieldsV1",
                "fieldsV1": {
                    "f:metadata": {
                        "f:annotations": {
                            ".": {},
                            "f:kubectl.kubernetes.io/last-applied-configuration": {}
                        }
                    },
                    "f:spec": {
                        ".": {},
                        "f:network": {
                            ".": {},
                            "f:vpc": {
                                ".": {},
                                "f:availabilityZoneSelection": {},
                                "f:availabilityZoneUsageLimit": {},
                                "f:cidrBlock": {}
                            }
                        },
                        "f:region": {},
                        "f:sshKeyName": {}
                    }
                },
                "manager": "kubectl-client-side-apply",
                "operation": "Update",
                "time": "2021-11-30T13:36:55Z"
            },
            {
                "apiVersion": "infrastructure.cluster.x-k8s.io/v1beta1",
                "fieldsType": "FieldsV1",
                "fieldsV1": {
                    "f:metadata": {
                        "f:finalizers": {
                            ".": {},
                            "v:\"awscluster.infrastructure.cluster.x-k8s.io\"": {}
                        }
                    },
                    "f:spec": {
                        "f:controlPlaneEndpoint": {
                            "f:host": {},
                            "f:port": {}
                        },
                        "f:controlPlaneLoadBalancer": {
                            "f:name": {}
                        },
                        "f:network": {
                            "f:subnets": {},
                            "f:vpc": {
                                "f:id": {},
                                "f:internetGatewayId": {},
                                "f:tags": {
                                    ".": {},
                                    "f:Name": {},
                                    "f:sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": {},
                                    "f:sigs.k8s.io/cluster-api-provider-aws/role": {}
                                }
                            }
                        }
                    },
                    "f:status": {
                        ".": {},
                        "f:conditions": {},
                        "f:failureDomains": {
                            ".": {},
                            "f:us-east-2a": {
                                ".": {},
                                "f:controlPlane": {}
                            },
                            "f:us-east-2b": {
                                ".": {},
                                "f:controlPlane": {}
                            }
                        },
                        "f:networkStatus": {
                            ".": {},
                            "f:apiServerElb": {
                                ".": {},
                                "f:attributes": {
                                    ".": {},
                                    "f:idleTimeout": {}
                                },
                                "f:availabilityZones": {},
                                "f:dnsName": {},
                                "f:name": {},
                                "f:scheme": {},
                                "f:securityGroupIds": {},
                                "f:subnetIds": {},
                                "f:tags": {
                                    ".": {},
                                    "f:Name": {},
                                    "f:sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": {},
                                    "f:sigs.k8s.io/cluster-api-provider-aws/role": {}
                                }
                            },
                            "f:securityGroups": {
                                ".": {},
                                "f:apiserver-lb": {
                                    ".": {},
                                    "f:id": {},
                                    "f:ingressRule": {},
                                    "f:name": {},
                                    "f:tags": {
                                        ".": {},
                                        "f:Name": {},
                                        "f:sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": {},
                                        "f:sigs.k8s.io/cluster-api-provider-aws/role": {}
                                    }
                                },
                                "f:bastion": {
                                    ".": {},
                                    "f:id": {},
                                    "f:ingressRule": {},
                                    "f:name": {},
                                    "f:tags": {
                                        ".": {},
                                        "f:Name": {},
                                        "f:sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": {},
                                        "f:sigs.k8s.io/cluster-api-provider-aws/role": {}
                                    }
                                },
                                "f:controlplane": {
                                    ".": {},
                                    "f:id": {},
                                    "f:ingressRule": {},
                                    "f:name": {},
                                    "f:tags": {
                                        ".": {},
                                        "f:Name": {},
                                        "f:sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": {},
                                        "f:sigs.k8s.io/cluster-api-provider-aws/role": {}
                                    }
                                },
                                "f:lb": {
                                    ".": {},
                                    "f:id": {},
                                    "f:name": {},
                                    "f:tags": {
                                        ".": {},
                                        "f:Name": {},
                                        "f:kubernetes.io/cluster/mgmt1": {},
                                        "f:sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": {},
                                        "f:sigs.k8s.io/cluster-api-provider-aws/role": {}
                                    }
                                },
                                "f:node": {
                                    ".": {},
                                    "f:id": {},
                                    "f:ingressRule": {},
                                    "f:name": {},
                                    "f:tags": {
                                        ".": {},
                                        "f:Name": {},
                                        "f:sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": {},
                                        "f:sigs.k8s.io/cluster-api-provider-aws/role": {}
                                    }
                                }
                            }
                        },
                        "f:ready": {}
                    }
                },
                "manager": "cluster-api-provider-aws-controller",
                "operation": "Update",
                "time": "2021-11-30T13:40:03Z"
            }
        ],
        "name": "mgmt1",
        "namespace": "default",
        "ownerReferences": [
            {
                "apiVersion": "cluster.x-k8s.io/v1beta1",
                "blockOwnerDeletion": true,
                "controller": true,
                "kind": "Cluster",
                "name": "mgmt1",
                "uid": "94f05757-dcc1-447c-b020-844301437928"
            }
        ],
        "resourceVersion": "6016434",
        "uid": "1a15a32f-e138-4708-b6ed-3e168d5aaed9"
    },
    "spec": {
        "bastion": {
            "allowedCIDRBlocks": [
                "0.0.0.0/0"
            ],
            "enabled": false
        },
        "controlPlaneEndpoint": {
            "host": "mgmt1-apiserver-1759940877.us-east-2.elb.amazonaws.com",
            "port": 6443
        },
        "controlPlaneLoadBalancer": {
            "crossZoneLoadBalancing": false,
            "name": "mgmt1-apiserver",
            "scheme": "internet-facing"
        },
        "identityRef": {
            "kind": "AWSClusterControllerIdentity",
            "name": "default"
        },
        "network": {
            "cni": {
                "cniIngressRules": [
                    {
                        "description": "bgp (calico)",
                        "fromPort": 179,
                        "protocol": "tcp",
                        "toPort": 179
                    },
                    {
                        "description": "IP-in-IP (calico)",
                        "fromPort": -1,
                        "protocol": "4",
                        "toPort": 65535
                    }
                ]
            },
            "subnets": [
                {
                    "availabilityZone": "us-east-2a",
                    "cidrBlock": "10.131.0.16/28",
                    "id": "subnet-0deee7de4836654fa",
                    "isPublic": true,
                    "natGatewayId": "nat-003e4000e60069d07",
                    "routeTableId": "rtb-0b56b7439928346ba",
                    "tags": {
                        "Name": "mgmt1-subnet-public-us-east-2a",
                        "kubernetes.io/cluster/mgmt1": "shared",
                        "kubernetes.io/role/elb": "1",
                        "sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": "owned",
                        "sigs.k8s.io/cluster-api-provider-aws/role": "public"
                    }
                },
                {
                    "availabilityZone": "us-east-2a",
                    "cidrBlock": "10.31.0.16/28",
                    "id": "subnet-0687a1c194b0aaa50",
                    "isPublic": false,
                    "routeTableId": "rtb-0581eefef46110254",
                    "tags": {
                        "Name": "mgmt1-subnet-private-us-east-2a",
                        "kubernetes.io/cluster/mgmt1": "shared",
                        "kubernetes.io/role/internal-elb": "1",
                        "sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": "owned",
                        "sigs.k8s.io/cluster-api-provider-aws/role": "private"
                    }
                },
                {
                    "availabilityZone": "us-east-2b",
                    "cidrBlock": "10.131.0.32/28",
                    "id": "subnet-09326addd5efd5a0d",
                    "isPublic": true,
                    "natGatewayId": "nat-0c81800b71d808a5e",
                    "routeTableId": "rtb-0d5155764b77a8601",
                    "tags": {
                        "Name": "mgmt1-subnet-public-us-east-2b",
                        "kubernetes.io/cluster/mgmt1": "shared",
                        "kubernetes.io/role/elb": "1",
                        "sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": "owned",
                        "sigs.k8s.io/cluster-api-provider-aws/role": "public"
                    }
                },
                {
                    "availabilityZone": "us-east-2b",
                    "cidrBlock": "10.31.0.32/28",
                    "id": "subnet-06b72c501e03fc7b1",
                    "isPublic": false,
                    "routeTableId": "rtb-0f3e74340c496c9fd",
                    "tags": {
                        "Name": "mgmt1-subnet-private-us-east-2b",
                        "kubernetes.io/cluster/mgmt1": "shared",
                        "kubernetes.io/role/internal-elb": "1",
                        "sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": "owned",
                        "sigs.k8s.io/cluster-api-provider-aws/role": "private"
                    }
                }
            ],
            "vpc": {
                "availabilityZoneSelection": "Ordered",
                "availabilityZoneUsageLimit": 3,
                "cidrBlock": "10.31.0.16/28",
                "id": "vpc-08a54407270d43458",
                "internetGatewayId": "igw-0f36a4c3702f2f39a",
                "tags": {
                    "Name": "mgmt1-vpc",
                    "sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": "owned",
                    "sigs.k8s.io/cluster-api-provider-aws/role": "common"
                }
            }
        },
        "region": "us-east-2",
        "sshKeyName": "replixio"
    },
    "status": {
        "conditions": [
            {
                "lastTransitionTime": "2021-11-30T13:40:03Z",
                "status": "True",
                "type": "Ready"
            },
            {
                "lastTransitionTime": "2021-11-30T13:38:55Z",
                "status": "True",
                "type": "ClusterSecurityGroupsReady"
            },
            {
                "lastTransitionTime": "2021-11-30T13:36:47Z",
                "status": "True",
                "type": "InternetGatewayReady"
            },
            {
                "lastTransitionTime": "2021-11-30T13:40:03Z",
                "status": "True",
                "type": "LoadBalancerReady"
            },
            {
                "lastTransitionTime": "2021-11-30T13:38:50Z",
                "status": "True",
                "type": "NatGatewaysReady"
            },
            {
                "lastTransitionTime": "2021-11-30T13:35:32Z",
                "status": "True",
                "type": "PrincipalUsageAllowed"
            },
            {
                "lastTransitionTime": "2021-11-30T13:38:56Z",
                "status": "True",
                "type": "RouteTablesReady"
            },
            {
                "lastTransitionTime": "2021-11-30T13:36:47Z",
                "status": "True",
                "type": "SubnetsReady"
            },
            {
                "lastTransitionTime": "2021-11-30T13:35:33Z",
                "status": "True",
                "type": "VpcReady"
            }
        ],
        "failureDomains": {
            "us-east-2a": {
                "controlPlane": true
            },
            "us-east-2b": {
                "controlPlane": true
            }
        },
        "networkStatus": {
            "apiServerElb": {
                "attributes": {
                    "idleTimeout": 600000000000
                },
                "availabilityZones": [
                    "us-east-2a",
                    "us-east-2b"
                ],
                "dnsName": "mgmt1-apiserver-1759940877.us-east-2.elb.amazonaws.com",
                "name": "mgmt1-apiserver",
                "scheme": "internet-facing",
                "securityGroupIds": [
                    "sg-0369a50389eff6574"
                ],
                "subnetIds": [
                    "subnet-09326addd5efd5a0d",
                    "subnet-0deee7de4836654fa"
                ],
                "tags": {
                    "Name": "mgmt1-apiserver",
                    "sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": "owned",
                    "sigs.k8s.io/cluster-api-provider-aws/role": "apiserver"
                }
            },
            "securityGroups": {
                "apiserver-lb": {
                    "id": "sg-0369a50389eff6574",
                    "ingressRule": [
                        {
                            "cidrBlocks": [
                                "0.0.0.0/0"
                            ],
                            "description": "Kubernetes API",
                            "fromPort": 6443,
                            "protocol": "tcp",
                            "toPort": 6443
                        }
                    ],
                    "name": "mgmt1-apiserver-lb",
                    "tags": {
                        "Name": "mgmt1-apiserver-lb",
                        "sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": "owned",
                        "sigs.k8s.io/cluster-api-provider-aws/role": "apiserver-lb"
                    }
                },
                "bastion": {
                    "id": "sg-06e1bc3f0407f6a5c",
                    "ingressRule": [
                        {
                            "cidrBlocks": [
                                "0.0.0.0/0"
                            ],
                            "description": "SSH",
                            "fromPort": 22,
                            "protocol": "tcp",
                            "toPort": 22
                        }
                    ],
                    "name": "mgmt1-bastion",
                    "tags": {
                        "Name": "mgmt1-bastion",
                        "sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": "owned",
                        "sigs.k8s.io/cluster-api-provider-aws/role": "bastion"
                    }
                },
                "controlplane": {
                    "id": "sg-03a12eda3c3ecddb8",
                    "ingressRule": [
                        {
                            "description": "Kubernetes API",
                            "fromPort": 6443,
                            "protocol": "tcp",
                            "sourceSecurityGroupIds": [
                                "sg-0369a50389eff6574",
                                "sg-03a12eda3c3ecddb8",
                                "sg-0e0e4ba71a3ddd42e"
                            ],
                            "toPort": 6443
                        },
                        {
                            "description": "SSH",
                            "fromPort": 22,
                            "protocol": "tcp",
                            "sourceSecurityGroupIds": [
                                "sg-06e1bc3f0407f6a5c"
                            ],
                            "toPort": 22
                        },
                        {
                            "description": "etcd",
                            "fromPort": 2379,
                            "protocol": "tcp",
                            "sourceSecurityGroupIds": [
                                "sg-03a12eda3c3ecddb8"
                            ],
                            "toPort": 2379
                        },
                        {
                            "description": "etcd peer",
                            "fromPort": 2380,
                            "protocol": "tcp",
                            "sourceSecurityGroupIds": [
                                "sg-03a12eda3c3ecddb8"
                            ],
                            "toPort": 2380
                        },
                        {
                            "description": "bgp (calico)",
                            "fromPort": 179,
                            "protocol": "tcp",
                            "sourceSecurityGroupIds": [
                                "sg-03a12eda3c3ecddb8",
                                "sg-0e0e4ba71a3ddd42e"
                            ],
                            "toPort": 179
                        },
                        {
                            "description": "IP-in-IP (calico)",
                            "fromPort": 0,
                            "protocol": "4",
                            "sourceSecurityGroupIds": [
                                "sg-03a12eda3c3ecddb8",
                                "sg-0e0e4ba71a3ddd42e"
                            ],
                            "toPort": 0
                        }
                    ],
                    "name": "mgmt1-controlplane",
                    "tags": {
                        "Name": "mgmt1-controlplane",
                        "sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": "owned",
                        "sigs.k8s.io/cluster-api-provider-aws/role": "controlplane"
                    }
                },
                "lb": {
                    "id": "sg-07b5b06c3ad92061c",
                    "name": "mgmt1-lb",
                    "tags": {
                        "Name": "mgmt1-lb",
                        "kubernetes.io/cluster/mgmt1": "owned",
                        "sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": "owned",
                        "sigs.k8s.io/cluster-api-provider-aws/role": "lb"
                    }
                },
                "node": {
                    "id": "sg-0e0e4ba71a3ddd42e",
                    "ingressRule": [
                        {
                            "cidrBlocks": [
                                "0.0.0.0/0"
                            ],
                            "description": "Node Port Services",
                            "fromPort": 30000,
                            "protocol": "tcp",
                            "toPort": 32767
                        },
                        {
                            "description": "SSH",
                            "fromPort": 22,
                            "protocol": "tcp",
                            "sourceSecurityGroupIds": [
                                "sg-06e1bc3f0407f6a5c"
                            ],
                            "toPort": 22
                        },
                        {
                            "description": "Kubelet API",
                            "fromPort": 10250,
                            "protocol": "tcp",
                            "sourceSecurityGroupIds": [
                                "sg-03a12eda3c3ecddb8",
                                "sg-0e0e4ba71a3ddd42e"
                            ],
                            "toPort": 10250
                        },
                        {
                            "description": "bgp (calico)",
                            "fromPort": 179,
                            "protocol": "tcp",
                            "sourceSecurityGroupIds": [
                                "sg-03a12eda3c3ecddb8",
                                "sg-0e0e4ba71a3ddd42e"
                            ],
                            "toPort": 179
                        },
                        {
                            "description": "IP-in-IP (calico)",
                            "fromPort": 0,
                            "protocol": "4",
                            "sourceSecurityGroupIds": [
                                "sg-03a12eda3c3ecddb8",
                                "sg-0e0e4ba71a3ddd42e"
                            ],
                            "toPort": 0
                        }
                    ],
                    "name": "mgmt1-node",
                    "tags": {
                        "Name": "mgmt1-node",
                        "sigs.k8s.io/cluster-api-provider-aws/cluster/mgmt1": "owned",
                        "sigs.k8s.io/cluster-api-provider-aws/role": "node"
                    }
                }
            }
        },
        "ready": true
    }
}
"#;

const CLUSTER2: &str = r#"
{"apiVersion":"infrastructure.cluster.x-k8s.io/v1beta1","kind":"AWSCluster","metadata":{"creationTimestamp":"2021-12-12T14:09:02Z","deletionGracePeriodSeconds":0,"deletionTimestamp":"2021-12-12T16:47:52Z","finalizers":["awscluster.infrastructure.cluster.x-k8s.io"],"generation":7,"labels":{"cluster.x-k8s.io/cluster-name":"pop-4"},"managedFields":[{"apiVersion":"infrastructure.cluster.x-k8s.io/v1beta1","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:labels":{".":{},"f:cluster.x-k8s.io/cluster-name":{}},"f:ownerReferences":{".":{},"k:{\"uid\":\"f32a17d4-95b4-4dcc-916d-116ae39f6181\"}":{".":{},"f:apiVersion":{},"f:blockOwnerDeletion":{},"f:controller":{},"f:kind":{},"f:name":{},"f:uid":{}}}}},"manager":"manager","operation":"Update","time":"2021-12-12T14:09:02Z"},{"apiVersion":"infrastructure.cluster.x-k8s.io/v1beta1","fieldsType":"FieldsV1","fieldsV1":{"f:spec":{".":{},"f:network":{".":{},"f:vpc":{".":{},"f:availabilityZoneSelection":{},"f:availabilityZoneUsageLimit":{},"f:cidrBlock":{}}},"f:region":{},"f:sshKeyName":{}}},"manager":"unknown","operation":"Update","time":"2021-12-12T14:09:02Z"},{"apiVersion":"infrastructure.cluster.x-k8s.io/v1beta1","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:finalizers":{".":{},"v:\"awscluster.infrastructure.cluster.x-k8s.io\"":{}}},"f:spec":{"f:controlPlaneLoadBalancer":{"f:name":{}},"f:network":{"f:subnets":{},"f:vpc":{"f:id":{},"f:internetGatewayId":{},"f:tags":{".":{},"f:Name":{},"f:sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":{},"f:sigs.k8s.io/cluster-api-provider-aws/role":{}}}}},"f:status":{".":{},"f:conditions":{},"f:networkStatus":{".":{},"f:securityGroups":{".":{},"f:apiserver-lb":{".":{},"f:id":{},"f:ingressRule":{},"f:name":{},"f:tags":{".":{},"f:Name":{},"f:sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":{},"f:sigs.k8s.io/cluster-api-provider-aws/role":{}}},"f:bastion":{".":{},"f:id":{},"f:ingressRule":{},"f:name":{},"f:tags":{".":{},"f:Name":{},"f:sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":{},"f:sigs.k8s.io/cluster-api-provider-aws/role":{}}},"f:controlplane":{".":{},"f:id":{},"f:ingressRule":{},"f:name":{},"f:tags":{".":{},"f:Name":{},"f:sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":{},"f:sigs.k8s.io/cluster-api-provider-aws/role":{}}},"f:lb":{".":{},"f:id":{},"f:name":{},"f:tags":{".":{},"f:Name":{},"f:kubernetes.io/cluster/pop-4":{},"f:sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":{},"f:sigs.k8s.io/cluster-api-provider-aws/role":{}}},"f:node":{".":{},"f:id":{},"f:ingressRule":{},"f:name":{},"f:tags":{".":{},"f:Name":{},"f:sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":{},"f:sigs.k8s.io/cluster-api-provider-aws/role":{}}}}},"f:ready":{}}},"manager":"cluster-api-provider-aws-controller","operation":"Update","time":"2021-12-12T14:50:02Z"}],"name":"pop-4","namespace":"default","ownerReferences":[{"apiVersion":"cluster.x-k8s.io/v1beta1","blockOwnerDeletion":true,"controller":true,"kind":"Cluster","name":"pop-4","uid":"f32a17d4-95b4-4dcc-916d-116ae39f6181"}],"resourceVersion":"13536672","uid":"4d5fdbf5-6d94-4a4c-bd79-3492eb67e769"},"spec":{"bastion":{"allowedCIDRBlocks":["0.0.0.0/0"],"enabled":false},"controlPlaneEndpoint":{"host":"","port":0},"controlPlaneLoadBalancer":{"crossZoneLoadBalancing":false,"name":"pop-4-apiserver","scheme":"internet-facing"},"identityRef":{"kind":"AWSClusterControllerIdentity","name":"default"},"network":{"cni":{"cniIngressRules":[{"description":"bgp (calico)","fromPort":179,"protocol":"tcp","toPort":179},{"description":"IP-in-IP (calico)","fromPort":-1,"protocol":"4","toPort":65535}]},"subnets":[{"availabilityZone":"us-east-2a","cidrBlock":"10.16.0.176/28","id":"subnet-0ac17fa43448227e8","isPublic":false,"routeTableId":"rtb-0d0cca26620a5c7ad","tags":{"Name":"pop-4-subnet-private-us-east-2a","kubernetes.io/cluster/pop-4":"shared","kubernetes.io/role/internal-elb":"1","sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":"owned","sigs.k8s.io/cluster-api-provider-aws/role":"private"}},{"availabilityZone":"us-east-2a","cidrBlock":"10.112.0.176/28","id":"subnet-00031783e1364e0ab","isPublic":true,"natGatewayId":"nat-03fedf0f955bb12ad","routeTableId":"rtb-0b1aac902841ace40","tags":{"Name":"pop-4-subnet-public-us-east-2a","kubernetes.io/cluster/pop-4":"shared","kubernetes.io/role/elb":"1","sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":"owned","sigs.k8s.io/cluster-api-provider-aws/role":"public"}},{"availabilityZone":"us-east-2b","cidrBlock":"10.16.0.224/28","id":"subnet-0a22a51044ad4af6b","isPublic":false,"routeTableId":"rtb-04aa6dacdfdc0cd22","tags":{"Name":"pop-4-subnet-private-us-east-2b","kubernetes.io/cluster/pop-4":"shared","kubernetes.io/role/internal-elb":"1","sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":"owned","sigs.k8s.io/cluster-api-provider-aws/role":"private"}},{"availabilityZone":"us-east-2b","cidrBlock":"10.112.0.224/28","id":"subnet-072ad2329c9c44860","isPublic":true,"natGatewayId":"nat-012e61190dcf1712a","routeTableId":"rtb-0bdc38a698beb4994","tags":{"Name":"pop-4-subnet-public-us-east-2b","kubernetes.io/cluster/pop-4":"shared","kubernetes.io/role/elb":"1","sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":"owned","sigs.k8s.io/cluster-api-provider-aws/role":"public"}}],"vpc":{"availabilityZoneSelection":"Ordered","availabilityZoneUsageLimit":3,"cidrBlock":"10.16.0.176/28","id":"vpc-0b3042b77678a07c5","internetGatewayId":"igw-076a132e3aee83651","tags":{"Name":"pop-4-vpc","sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":"owned","sigs.k8s.io/cluster-api-provider-aws/role":"common"}}},"region":"us-east-2","sshKeyName":"replixio"},"status":{"conditions":[{"lastTransitionTime":"2021-12-12T14:50:00Z","message":"6 of 7 completed","reason":"LoadBalancerFailed","severity":"Error","status":"False","type":"Ready"},{"lastTransitionTime":"2021-12-12T14:50:00Z","status":"True","type":"ClusterSecurityGroupsReady"},{"lastTransitionTime":"2021-12-12T14:47:51Z","status":"True","type":"InternetGatewayReady"},{"lastTransitionTime":"2021-12-12T14:50:00Z","message":"ELB names must be unique within a region: \"pop-4-apiserver\" ELB already exists in this region in VPC \"vpc-0620cab7b71baa197\"","reason":"LoadBalancerFailed","severity":"Error","status":"False","type":"LoadBalancerReady"},{"lastTransitionTime":"2021-12-12T14:49:54Z","status":"True","type":"NatGatewaysReady"},{"lastTransitionTime":"2021-12-12T14:09:02Z","status":"True","type":"PrincipalCredentialRetrieved"},{"lastTransitionTime":"2021-12-12T14:09:02Z","status":"True","type":"PrincipalUsageAllowed"},{"lastTransitionTime":"2021-12-12T14:50:00Z","status":"True","type":"RouteTablesReady"},{"lastTransitionTime":"2021-12-12T14:47:51Z","status":"True","type":"SubnetsReady"},{"lastTransitionTime":"2021-12-12T14:09:04Z","status":"True","type":"VpcReady"}],"networkStatus":{"securityGroups":{"apiserver-lb":{"id":"sg-032c0a432b8cff3d4","ingressRule":[{"cidrBlocks":["0.0.0.0/0"],"description":"Kubernetes API","fromPort":6443,"protocol":"tcp","toPort":6443}],"name":"pop-4-apiserver-lb","tags":{"Name":"pop-4-apiserver-lb","sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":"owned","sigs.k8s.io/cluster-api-provider-aws/role":"apiserver-lb"}},"bastion":{"id":"sg-034792c155c67dbfc","ingressRule":[{"cidrBlocks":["0.0.0.0/0"],"description":"SSH","fromPort":22,"protocol":"tcp","toPort":22}],"name":"pop-4-bastion","tags":{"Name":"pop-4-bastion","sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":"owned","sigs.k8s.io/cluster-api-provider-aws/role":"bastion"}},"controlplane":{"id":"sg-0b584232ed267ef57","ingressRule":[{"description":"Kubernetes API","fromPort":6443,"protocol":"tcp","sourceSecurityGroupIds":["sg-032c0a432b8cff3d4","sg-0b23c5d3388b35d3f","sg-0b584232ed267ef57"],"toPort":6443},{"description":"SSH","fromPort":22,"protocol":"tcp","sourceSecurityGroupIds":["sg-034792c155c67dbfc"],"toPort":22},{"description":"etcd","fromPort":2379,"protocol":"tcp","sourceSecurityGroupIds":["sg-0b584232ed267ef57"],"toPort":2379},{"description":"etcd peer","fromPort":2380,"protocol":"tcp","sourceSecurityGroupIds":["sg-0b584232ed267ef57"],"toPort":2380},{"description":"bgp (calico)","fromPort":179,"protocol":"tcp","sourceSecurityGroupIds":["sg-0b23c5d3388b35d3f","sg-0b584232ed267ef57"],"toPort":179},{"description":"IP-in-IP (calico)","fromPort":0,"protocol":"4","sourceSecurityGroupIds":["sg-0b23c5d3388b35d3f","sg-0b584232ed267ef57"],"toPort":0}],"name":"pop-4-controlplane","tags":{"Name":"pop-4-controlplane","sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":"owned","sigs.k8s.io/cluster-api-provider-aws/role":"controlplane"}},"lb":{"id":"sg-09d733b4bd84a4eac","name":"pop-4-lb","tags":{"Name":"pop-4-lb","kubernetes.io/cluster/pop-4":"owned","sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":"owned","sigs.k8s.io/cluster-api-provider-aws/role":"lb"}},"node":{"id":"sg-0b23c5d3388b35d3f","ingressRule":[{"cidrBlocks":["0.0.0.0/0"],"description":"Node Port Services","fromPort":30000,"protocol":"tcp","toPort":32767},{"description":"SSH","fromPort":22,"protocol":"tcp","sourceSecurityGroupIds":["sg-034792c155c67dbfc"],"toPort":22},{"description":"Kubelet API","fromPort":10250,"protocol":"tcp","sourceSecurityGroupIds":["sg-0b23c5d3388b35d3f","sg-0b584232ed267ef57"],"toPort":10250},{"description":"bgp (calico)","fromPort":179,"protocol":"tcp","sourceSecurityGroupIds":["sg-0b23c5d3388b35d3f","sg-0b584232ed267ef57"],"toPort":179},{"description":"IP-in-IP (calico)","fromPort":0,"protocol":"4","sourceSecurityGroupIds":["sg-0b23c5d3388b35d3f","sg-0b584232ed267ef57"],"toPort":0}],"name":"pop-4-node","tags":{"Name":"pop-4-node","sigs.k8s.io/cluster-api-provider-aws/cluster/pop-4":"owned","sigs.k8s.io/cluster-api-provider-aws/role":"node"}}}},"ready":false}}
"#;