@bluedynamics/cdk8s-plone 0.1.40 → 0.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -279,7 +279,7 @@
279
279
  },
280
280
  "locationInModule": {
281
281
  "filename": "src/plone.ts",
282
- "line": 398
282
+ "line": 408
283
283
  },
284
284
  "parameters": [
285
285
  {
@@ -306,7 +306,7 @@
306
306
  "kind": "class",
307
307
  "locationInModule": {
308
308
  "filename": "src/plone.ts",
309
- "line": 375
309
+ "line": 385
310
310
  },
311
311
  "name": "Plone",
312
312
  "properties": [
@@ -319,7 +319,7 @@
319
319
  "immutable": true,
320
320
  "locationInModule": {
321
321
  "filename": "src/plone.ts",
322
- "line": 380
322
+ "line": 390
323
323
  },
324
324
  "name": "backendServiceName",
325
325
  "type": {
@@ -334,7 +334,7 @@
334
334
  "immutable": true,
335
335
  "locationInModule": {
336
336
  "filename": "src/plone.ts",
337
- "line": 396
337
+ "line": 406
338
338
  },
339
339
  "name": "siteId",
340
340
  "type": {
@@ -349,7 +349,7 @@
349
349
  "immutable": true,
350
350
  "locationInModule": {
351
351
  "filename": "src/plone.ts",
352
- "line": 391
352
+ "line": 401
353
353
  },
354
354
  "name": "variant",
355
355
  "type": {
@@ -365,7 +365,7 @@
365
365
  "immutable": true,
366
366
  "locationInModule": {
367
367
  "filename": "src/plone.ts",
368
- "line": 386
368
+ "line": 396
369
369
  },
370
370
  "name": "frontendServiceName",
371
371
  "optional": true,
@@ -658,7 +658,7 @@
658
658
  "immutable": true,
659
659
  "locationInModule": {
660
660
  "filename": "src/plone.ts",
661
- "line": 270
661
+ "line": 280
662
662
  },
663
663
  "name": "metricsPath",
664
664
  "optional": true,
@@ -677,7 +677,7 @@
677
677
  "immutable": true,
678
678
  "locationInModule": {
679
679
  "filename": "src/plone.ts",
680
- "line": 263
680
+ "line": 273
681
681
  },
682
682
  "name": "metricsPort",
683
683
  "optional": true,
@@ -734,7 +734,7 @@
734
734
  "immutable": true,
735
735
  "locationInModule": {
736
736
  "filename": "src/plone.ts",
737
- "line": 278
737
+ "line": 288
738
738
  },
739
739
  "name": "nodeSelector",
740
740
  "optional": true,
@@ -949,7 +949,7 @@
949
949
  "immutable": true,
950
950
  "locationInModule": {
951
951
  "filename": "src/plone.ts",
952
- "line": 286
952
+ "line": 296
953
953
  },
954
954
  "name": "securityContext",
955
955
  "optional": true,
@@ -957,19 +957,40 @@
957
957
  "fqn": "@bluedynamics/cdk8s-plone.PloneSecurityContext"
958
958
  }
959
959
  },
960
+ {
961
+ "abstract": true,
962
+ "docs": {
963
+ "default": "- construct-managed defaults only",
964
+ "example": "{ type: 'LoadBalancer', trafficDistribution: 'PreferClose' }",
965
+ "remarks": "Applies to this component's Service.",
966
+ "stability": "stable",
967
+ "summary": "Service configuration: type, trafficDistribution, sessionAffinity, annotations/labels, and a raw `overrides` escape hatch for any other ServiceSpec field."
968
+ },
969
+ "immutable": true,
970
+ "locationInModule": {
971
+ "filename": "src/plone.ts",
972
+ "line": 258
973
+ },
974
+ "name": "service",
975
+ "optional": true,
976
+ "type": {
977
+ "fqn": "@bluedynamics/cdk8s-plone.PloneServiceSpec"
978
+ }
979
+ },
960
980
  {
961
981
  "abstract": true,
962
982
  "docs": {
963
983
  "default": "- no additional annotations",
984
+ "deprecated": "use `service.annotations` instead",
964
985
  "example": "{ 'external-dns.alpha.kubernetes.io/hostname': 'plone.example.com' }",
965
986
  "remarks": "Common for external-dns, load balancers, service mesh, etc.",
966
- "stability": "stable",
987
+ "stability": "deprecated",
967
988
  "summary": "Annotations to add to the Service metadata."
968
989
  },
969
990
  "immutable": true,
970
991
  "locationInModule": {
971
992
  "filename": "src/plone.ts",
972
- "line": 248
993
+ "line": 249
973
994
  },
974
995
  "name": "serviceAnnotations",
975
996
  "optional": true,
@@ -993,7 +1014,7 @@
993
1014
  "immutable": true,
994
1015
  "locationInModule": {
995
1016
  "filename": "src/plone.ts",
996
- "line": 256
1017
+ "line": 266
997
1018
  },
998
1019
  "name": "servicemonitor",
999
1020
  "optional": true,
@@ -1450,7 +1471,7 @@
1450
1471
  "kind": "interface",
1451
1472
  "locationInModule": {
1452
1473
  "filename": "src/plone.ts",
1453
- "line": 308
1474
+ "line": 318
1454
1475
  },
1455
1476
  "name": "PloneOptions",
1456
1477
  "properties": [
@@ -1464,7 +1485,7 @@
1464
1485
  "immutable": true,
1465
1486
  "locationInModule": {
1466
1487
  "filename": "src/plone.ts",
1467
- "line": 333
1488
+ "line": 343
1468
1489
  },
1469
1490
  "name": "backend",
1470
1491
  "optional": true,
@@ -1483,7 +1504,7 @@
1483
1504
  "immutable": true,
1484
1505
  "locationInModule": {
1485
1506
  "filename": "src/plone.ts",
1486
- "line": 340
1507
+ "line": 350
1487
1508
  },
1488
1509
  "name": "frontend",
1489
1510
  "optional": true,
@@ -1503,7 +1524,7 @@
1503
1524
  "immutable": true,
1504
1525
  "locationInModule": {
1505
1526
  "filename": "src/plone.ts",
1506
- "line": 348
1527
+ "line": 358
1507
1528
  },
1508
1529
  "name": "imagePullSecrets",
1509
1530
  "optional": true,
@@ -1527,7 +1548,7 @@
1527
1548
  "immutable": true,
1528
1549
  "locationInModule": {
1529
1550
  "filename": "src/plone.ts",
1530
- "line": 321
1551
+ "line": 331
1531
1552
  },
1532
1553
  "name": "siteId",
1533
1554
  "optional": true,
@@ -1545,7 +1566,7 @@
1545
1566
  "immutable": true,
1546
1567
  "locationInModule": {
1547
1568
  "filename": "src/plone.ts",
1548
- "line": 327
1569
+ "line": 337
1549
1570
  },
1550
1571
  "name": "variant",
1551
1572
  "optional": true,
@@ -1564,7 +1585,7 @@
1564
1585
  "immutable": true,
1565
1586
  "locationInModule": {
1566
1587
  "filename": "src/plone.ts",
1567
- "line": 314
1588
+ "line": 324
1568
1589
  },
1569
1590
  "name": "version",
1570
1591
  "optional": true,
@@ -1721,6 +1742,243 @@
1721
1742
  ],
1722
1743
  "symbolId": "src/plone:PloneSecurityContext"
1723
1744
  },
1745
+ "@bluedynamics/cdk8s-plone.PloneServiceSpec": {
1746
+ "assembly": "@bluedynamics/cdk8s-plone",
1747
+ "datatype": true,
1748
+ "docs": {
1749
+ "remarks": "Curated fields cover the common cases; use `overrides` as an escape hatch\nfor any other `ServiceSpec` field. `overrides` has the highest precedence and\ncan override every field, including the construct-managed `ports`/`selector`\n(at your own risk).",
1750
+ "stability": "stable",
1751
+ "summary": "Configuration for the generated Kubernetes Service spec."
1752
+ },
1753
+ "fqn": "@bluedynamics/cdk8s-plone.PloneServiceSpec",
1754
+ "kind": "interface",
1755
+ "locationInModule": {
1756
+ "filename": "src/service.ts",
1757
+ "line": 13
1758
+ },
1759
+ "name": "PloneServiceSpec",
1760
+ "properties": [
1761
+ {
1762
+ "abstract": true,
1763
+ "docs": {
1764
+ "default": "- none",
1765
+ "stability": "stable",
1766
+ "summary": "Annotations to add to the Service metadata."
1767
+ },
1768
+ "immutable": true,
1769
+ "locationInModule": {
1770
+ "filename": "src/service.ts",
1771
+ "line": 66
1772
+ },
1773
+ "name": "annotations",
1774
+ "optional": true,
1775
+ "type": {
1776
+ "collection": {
1777
+ "elementtype": {
1778
+ "primitive": "string"
1779
+ },
1780
+ "kind": "map"
1781
+ }
1782
+ }
1783
+ },
1784
+ {
1785
+ "abstract": true,
1786
+ "docs": {
1787
+ "default": "- Cluster (Kubernetes default)",
1788
+ "stability": "stable",
1789
+ "summary": "External traffic policy, 'Cluster' | 'Local'."
1790
+ },
1791
+ "immutable": true,
1792
+ "locationInModule": {
1793
+ "filename": "src/service.ts",
1794
+ "line": 36
1795
+ },
1796
+ "name": "externalTrafficPolicy",
1797
+ "optional": true,
1798
+ "type": {
1799
+ "primitive": "string"
1800
+ }
1801
+ },
1802
+ {
1803
+ "abstract": true,
1804
+ "docs": {
1805
+ "default": "- Cluster (Kubernetes default)",
1806
+ "stability": "stable",
1807
+ "summary": "Internal traffic policy, 'Cluster' | 'Local'."
1808
+ },
1809
+ "immutable": true,
1810
+ "locationInModule": {
1811
+ "filename": "src/service.ts",
1812
+ "line": 42
1813
+ },
1814
+ "name": "internalTrafficPolicy",
1815
+ "optional": true,
1816
+ "type": {
1817
+ "primitive": "string"
1818
+ }
1819
+ },
1820
+ {
1821
+ "abstract": true,
1822
+ "docs": {
1823
+ "default": "- none",
1824
+ "stability": "stable",
1825
+ "summary": "Extra labels to add to the Service metadata."
1826
+ },
1827
+ "immutable": true,
1828
+ "locationInModule": {
1829
+ "filename": "src/service.ts",
1830
+ "line": 72
1831
+ },
1832
+ "name": "labels",
1833
+ "optional": true,
1834
+ "type": {
1835
+ "collection": {
1836
+ "elementtype": {
1837
+ "primitive": "string"
1838
+ },
1839
+ "kind": "map"
1840
+ }
1841
+ }
1842
+ },
1843
+ {
1844
+ "abstract": true,
1845
+ "docs": {
1846
+ "default": "- none",
1847
+ "stability": "stable",
1848
+ "summary": "Load balancer implementation class."
1849
+ },
1850
+ "immutable": true,
1851
+ "locationInModule": {
1852
+ "filename": "src/service.ts",
1853
+ "line": 54
1854
+ },
1855
+ "name": "loadBalancerClass",
1856
+ "optional": true,
1857
+ "type": {
1858
+ "primitive": "string"
1859
+ }
1860
+ },
1861
+ {
1862
+ "abstract": true,
1863
+ "docs": {
1864
+ "default": "- none",
1865
+ "stability": "stable",
1866
+ "summary": "Source IP ranges allowed to access a LoadBalancer service."
1867
+ },
1868
+ "immutable": true,
1869
+ "locationInModule": {
1870
+ "filename": "src/service.ts",
1871
+ "line": 60
1872
+ },
1873
+ "name": "loadBalancerSourceRanges",
1874
+ "optional": true,
1875
+ "type": {
1876
+ "collection": {
1877
+ "elementtype": {
1878
+ "primitive": "string"
1879
+ },
1880
+ "kind": "array"
1881
+ }
1882
+ }
1883
+ },
1884
+ {
1885
+ "abstract": true,
1886
+ "docs": {
1887
+ "default": "- none",
1888
+ "stability": "stable",
1889
+ "summary": "Raw ServiceSpec overrides as a free-form map (e.g. `{ ipFamilyPolicy: 'PreferDualStack' }`). Highest precedence — merged on top of all curated fields and the construct-managed base. Use for any ServiceSpec field not covered above. Keys and values are passed through to the Service spec verbatim and are not validated by this construct."
1890
+ },
1891
+ "immutable": true,
1892
+ "locationInModule": {
1893
+ "filename": "src/service.ts",
1894
+ "line": 82
1895
+ },
1896
+ "name": "overrides",
1897
+ "optional": true,
1898
+ "type": {
1899
+ "collection": {
1900
+ "elementtype": {
1901
+ "primitive": "any"
1902
+ },
1903
+ "kind": "map"
1904
+ }
1905
+ }
1906
+ },
1907
+ {
1908
+ "abstract": true,
1909
+ "docs": {
1910
+ "default": "- false",
1911
+ "stability": "stable",
1912
+ "summary": "Publish not-ready addresses (e.g. for headless services with StatefulSets)."
1913
+ },
1914
+ "immutable": true,
1915
+ "locationInModule": {
1916
+ "filename": "src/service.ts",
1917
+ "line": 48
1918
+ },
1919
+ "name": "publishNotReadyAddresses",
1920
+ "optional": true,
1921
+ "type": {
1922
+ "primitive": "boolean"
1923
+ }
1924
+ },
1925
+ {
1926
+ "abstract": true,
1927
+ "docs": {
1928
+ "default": "- None (Kubernetes default)",
1929
+ "stability": "stable",
1930
+ "summary": "Session affinity, 'ClientIP' | 'None'."
1931
+ },
1932
+ "immutable": true,
1933
+ "locationInModule": {
1934
+ "filename": "src/service.ts",
1935
+ "line": 30
1936
+ },
1937
+ "name": "sessionAffinity",
1938
+ "optional": true,
1939
+ "type": {
1940
+ "primitive": "string"
1941
+ }
1942
+ },
1943
+ {
1944
+ "abstract": true,
1945
+ "docs": {
1946
+ "default": "- none",
1947
+ "stability": "stable",
1948
+ "summary": "Traffic distribution preference, e.g. 'PreferClose' for topology-aware routing."
1949
+ },
1950
+ "immutable": true,
1951
+ "locationInModule": {
1952
+ "filename": "src/service.ts",
1953
+ "line": 24
1954
+ },
1955
+ "name": "trafficDistribution",
1956
+ "optional": true,
1957
+ "type": {
1958
+ "primitive": "string"
1959
+ }
1960
+ },
1961
+ {
1962
+ "abstract": true,
1963
+ "docs": {
1964
+ "default": "- ClusterIP (Kubernetes default)",
1965
+ "stability": "stable",
1966
+ "summary": "Service type, e.g. ClusterIP | NodePort | LoadBalancer | ExternalName."
1967
+ },
1968
+ "immutable": true,
1969
+ "locationInModule": {
1970
+ "filename": "src/service.ts",
1971
+ "line": 18
1972
+ },
1973
+ "name": "type",
1974
+ "optional": true,
1975
+ "type": {
1976
+ "primitive": "string"
1977
+ }
1978
+ }
1979
+ ],
1980
+ "symbolId": "src/service:PloneServiceSpec"
1981
+ },
1724
1982
  "@bluedynamics/cdk8s-plone.PloneVariant": {
1725
1983
  "assembly": "@bluedynamics/cdk8s-plone",
1726
1984
  "docs": {
@@ -1731,7 +1989,7 @@
1731
1989
  "kind": "enum",
1732
1990
  "locationInModule": {
1733
1991
  "filename": "src/plone.ts",
1734
- "line": 291
1992
+ "line": 301
1735
1993
  },
1736
1994
  "members": [
1737
1995
  {
@@ -2852,6 +3110,6 @@
2852
3110
  "symbolId": "src/vinylcache:VinylCacheToleration"
2853
3111
  }
2854
3112
  },
2855
- "version": "0.1.40",
2856
- "fingerprint": "RD48uDt8wjb2dYP+IUClJ3iHIkNYZ/vLu2zMbysrhSo="
3113
+ "version": "0.1.41",
3114
+ "fingerprint": "9JNj9g1Gsl0Yh2odzC98CZU0Me9K8FN1awRs39FwVc0="
2857
3115
  }
package/API.md CHANGED
@@ -727,6 +727,7 @@ const ploneBaseOptions: PloneBaseOptions = { ... }
727
727
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.requestCpu">requestCpu</a></code> | <code>string</code> | CPU request for the container. |
728
728
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.requestMemory">requestMemory</a></code> | <code>string</code> | Memory request for the container. |
729
729
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.securityContext">securityContext</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.PloneSecurityContext">PloneSecurityContext</a></code> | Security context for the container. |
730
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.service">service</a></code> | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec">PloneServiceSpec</a></code> | Service configuration: type, trafficDistribution, sessionAffinity, annotations/labels, and a raw `overrides` escape hatch for any other ServiceSpec field. |
730
731
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.serviceAnnotations">serviceAnnotations</a></code> | <code>{[ key: string ]: string}</code> | Annotations to add to the Service metadata. |
731
732
  | <code><a href="#@bluedynamics/cdk8s-plone.PloneBaseOptions.property.servicemonitor">servicemonitor</a></code> | <code>boolean</code> | Enable Prometheus ServiceMonitor for metrics collection. |
732
733
 
@@ -1182,7 +1183,31 @@ Use to set capabilities, run as non-root, read-only filesystem, etc.
1182
1183
  ```
1183
1184
 
1184
1185
 
1185
- ##### `serviceAnnotations`<sup>Optional</sup> <a name="serviceAnnotations" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.serviceAnnotations"></a>
1186
+ ##### `service`<sup>Optional</sup> <a name="service" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.service"></a>
1187
+
1188
+ ```typescript
1189
+ public readonly service: PloneServiceSpec;
1190
+ ```
1191
+
1192
+ - *Type:* <a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec">PloneServiceSpec</a>
1193
+ - *Default:* construct-managed defaults only
1194
+
1195
+ Service configuration: type, trafficDistribution, sessionAffinity, annotations/labels, and a raw `overrides` escape hatch for any other ServiceSpec field.
1196
+
1197
+ Applies to this component's Service.
1198
+
1199
+ ---
1200
+
1201
+ *Example*
1202
+
1203
+ ```typescript
1204
+ { type: 'LoadBalancer', trafficDistribution: 'PreferClose' }
1205
+ ```
1206
+
1207
+
1208
+ ##### ~~`serviceAnnotations`~~<sup>Optional</sup> <a name="serviceAnnotations" id="@bluedynamics/cdk8s-plone.PloneBaseOptions.property.serviceAnnotations"></a>
1209
+
1210
+ - *Deprecated:* use `service.annotations` instead
1186
1211
 
1187
1212
  ```typescript
1188
1213
  public readonly serviceAnnotations: {[ key: string ]: string};
@@ -1761,6 +1786,184 @@ Run the container as a specific user ID.
1761
1786
 
1762
1787
  ---
1763
1788
 
1789
+ ### PloneServiceSpec <a name="PloneServiceSpec" id="@bluedynamics/cdk8s-plone.PloneServiceSpec"></a>
1790
+
1791
+ Configuration for the generated Kubernetes Service spec.
1792
+
1793
+ Curated fields cover the common cases; use `overrides` as an escape hatch
1794
+ for any other `ServiceSpec` field. `overrides` has the highest precedence and
1795
+ can override every field, including the construct-managed `ports`/`selector`
1796
+ (at your own risk).
1797
+
1798
+ #### Initializer <a name="Initializer" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.Initializer"></a>
1799
+
1800
+ ```typescript
1801
+ import { PloneServiceSpec } from '@bluedynamics/cdk8s-plone'
1802
+
1803
+ const ploneServiceSpec: PloneServiceSpec = { ... }
1804
+ ```
1805
+
1806
+ #### Properties <a name="Properties" id="Properties"></a>
1807
+
1808
+ | **Name** | **Type** | **Description** |
1809
+ | --- | --- | --- |
1810
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec.property.annotations">annotations</a></code> | <code>{[ key: string ]: string}</code> | Annotations to add to the Service metadata. |
1811
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec.property.externalTrafficPolicy">externalTrafficPolicy</a></code> | <code>string</code> | External traffic policy, 'Cluster' \| 'Local'. |
1812
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec.property.internalTrafficPolicy">internalTrafficPolicy</a></code> | <code>string</code> | Internal traffic policy, 'Cluster' \| 'Local'. |
1813
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec.property.labels">labels</a></code> | <code>{[ key: string ]: string}</code> | Extra labels to add to the Service metadata. |
1814
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec.property.loadBalancerClass">loadBalancerClass</a></code> | <code>string</code> | Load balancer implementation class. |
1815
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec.property.loadBalancerSourceRanges">loadBalancerSourceRanges</a></code> | <code>string[]</code> | Source IP ranges allowed to access a LoadBalancer service. |
1816
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec.property.overrides">overrides</a></code> | <code>{[ key: string ]: any}</code> | Raw ServiceSpec overrides as a free-form map (e.g. `{ ipFamilyPolicy: 'PreferDualStack' }`). Highest precedence — merged on top of all curated fields and the construct-managed base. Use for any ServiceSpec field not covered above. Keys and values are passed through to the Service spec verbatim and are not validated by this construct. |
1817
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec.property.publishNotReadyAddresses">publishNotReadyAddresses</a></code> | <code>boolean</code> | Publish not-ready addresses (e.g. for headless services with StatefulSets). |
1818
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec.property.sessionAffinity">sessionAffinity</a></code> | <code>string</code> | Session affinity, 'ClientIP' \| 'None'. |
1819
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec.property.trafficDistribution">trafficDistribution</a></code> | <code>string</code> | Traffic distribution preference, e.g. 'PreferClose' for topology-aware routing. |
1820
+ | <code><a href="#@bluedynamics/cdk8s-plone.PloneServiceSpec.property.type">type</a></code> | <code>string</code> | Service type, e.g. ClusterIP \| NodePort \| LoadBalancer \| ExternalName. |
1821
+
1822
+ ---
1823
+
1824
+ ##### `annotations`<sup>Optional</sup> <a name="annotations" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.property.annotations"></a>
1825
+
1826
+ ```typescript
1827
+ public readonly annotations: {[ key: string ]: string};
1828
+ ```
1829
+
1830
+ - *Type:* {[ key: string ]: string}
1831
+ - *Default:* none
1832
+
1833
+ Annotations to add to the Service metadata.
1834
+
1835
+ ---
1836
+
1837
+ ##### `externalTrafficPolicy`<sup>Optional</sup> <a name="externalTrafficPolicy" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.property.externalTrafficPolicy"></a>
1838
+
1839
+ ```typescript
1840
+ public readonly externalTrafficPolicy: string;
1841
+ ```
1842
+
1843
+ - *Type:* string
1844
+ - *Default:* Cluster (Kubernetes default)
1845
+
1846
+ External traffic policy, 'Cluster' | 'Local'.
1847
+
1848
+ ---
1849
+
1850
+ ##### `internalTrafficPolicy`<sup>Optional</sup> <a name="internalTrafficPolicy" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.property.internalTrafficPolicy"></a>
1851
+
1852
+ ```typescript
1853
+ public readonly internalTrafficPolicy: string;
1854
+ ```
1855
+
1856
+ - *Type:* string
1857
+ - *Default:* Cluster (Kubernetes default)
1858
+
1859
+ Internal traffic policy, 'Cluster' | 'Local'.
1860
+
1861
+ ---
1862
+
1863
+ ##### `labels`<sup>Optional</sup> <a name="labels" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.property.labels"></a>
1864
+
1865
+ ```typescript
1866
+ public readonly labels: {[ key: string ]: string};
1867
+ ```
1868
+
1869
+ - *Type:* {[ key: string ]: string}
1870
+ - *Default:* none
1871
+
1872
+ Extra labels to add to the Service metadata.
1873
+
1874
+ ---
1875
+
1876
+ ##### `loadBalancerClass`<sup>Optional</sup> <a name="loadBalancerClass" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.property.loadBalancerClass"></a>
1877
+
1878
+ ```typescript
1879
+ public readonly loadBalancerClass: string;
1880
+ ```
1881
+
1882
+ - *Type:* string
1883
+ - *Default:* none
1884
+
1885
+ Load balancer implementation class.
1886
+
1887
+ ---
1888
+
1889
+ ##### `loadBalancerSourceRanges`<sup>Optional</sup> <a name="loadBalancerSourceRanges" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.property.loadBalancerSourceRanges"></a>
1890
+
1891
+ ```typescript
1892
+ public readonly loadBalancerSourceRanges: string[];
1893
+ ```
1894
+
1895
+ - *Type:* string[]
1896
+ - *Default:* none
1897
+
1898
+ Source IP ranges allowed to access a LoadBalancer service.
1899
+
1900
+ ---
1901
+
1902
+ ##### `overrides`<sup>Optional</sup> <a name="overrides" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.property.overrides"></a>
1903
+
1904
+ ```typescript
1905
+ public readonly overrides: {[ key: string ]: any};
1906
+ ```
1907
+
1908
+ - *Type:* {[ key: string ]: any}
1909
+ - *Default:* none
1910
+
1911
+ Raw ServiceSpec overrides as a free-form map (e.g. `{ ipFamilyPolicy: 'PreferDualStack' }`). Highest precedence — merged on top of all curated fields and the construct-managed base. Use for any ServiceSpec field not covered above. Keys and values are passed through to the Service spec verbatim and are not validated by this construct.
1912
+
1913
+ ---
1914
+
1915
+ ##### `publishNotReadyAddresses`<sup>Optional</sup> <a name="publishNotReadyAddresses" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.property.publishNotReadyAddresses"></a>
1916
+
1917
+ ```typescript
1918
+ public readonly publishNotReadyAddresses: boolean;
1919
+ ```
1920
+
1921
+ - *Type:* boolean
1922
+ - *Default:* false
1923
+
1924
+ Publish not-ready addresses (e.g. for headless services with StatefulSets).
1925
+
1926
+ ---
1927
+
1928
+ ##### `sessionAffinity`<sup>Optional</sup> <a name="sessionAffinity" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.property.sessionAffinity"></a>
1929
+
1930
+ ```typescript
1931
+ public readonly sessionAffinity: string;
1932
+ ```
1933
+
1934
+ - *Type:* string
1935
+ - *Default:* None (Kubernetes default)
1936
+
1937
+ Session affinity, 'ClientIP' | 'None'.
1938
+
1939
+ ---
1940
+
1941
+ ##### `trafficDistribution`<sup>Optional</sup> <a name="trafficDistribution" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.property.trafficDistribution"></a>
1942
+
1943
+ ```typescript
1944
+ public readonly trafficDistribution: string;
1945
+ ```
1946
+
1947
+ - *Type:* string
1948
+ - *Default:* none
1949
+
1950
+ Traffic distribution preference, e.g. 'PreferClose' for topology-aware routing.
1951
+
1952
+ ---
1953
+
1954
+ ##### `type`<sup>Optional</sup> <a name="type" id="@bluedynamics/cdk8s-plone.PloneServiceSpec.property.type"></a>
1955
+
1956
+ ```typescript
1957
+ public readonly type: string;
1958
+ ```
1959
+
1960
+ - *Type:* string
1961
+ - *Default:* ClusterIP (Kubernetes default)
1962
+
1963
+ Service type, e.g. ClusterIP | NodePort | LoadBalancer | ExternalName.
1964
+
1965
+ ---
1966
+
1764
1967
  ### PloneVinylCacheOptions <a name="PloneVinylCacheOptions" id="@bluedynamics/cdk8s-plone.PloneVinylCacheOptions"></a>
1765
1968
 
1766
1969
  Configuration options for PloneVinylCache (cloud-vinyl operator).