@bluedynamics/cdk8s-plone 0.1.23 → 0.1.25

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
@@ -108,7 +108,7 @@
108
108
  },
109
109
  "name": "@bluedynamics/cdk8s-plone",
110
110
  "readme": {
111
- "markdown": "# CDK8S Plone\n\n> TypeScript and Python library for deploying Plone CMS to Kubernetes using CDK8S\n\n[![npm version](https://badge.fury.io/js/%40bluedynamics%2Fcdk8s-plone.svg)](https://www.npmjs.com/package/@bluedynamics/cdk8s-plone)\n[![PyPI version](https://badge.fury.io/py/cdk8s-plone.svg)](https://pypi.org/project/cdk8s-plone/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n\n## Overview\n\ncdk8s-plone provides CDK8S constructs for deploying [Plone CMS](https://plone.org/) on Kubernetes. Define your infrastructure using TypeScript or Python and generate Kubernetes manifests automatically.\n\n**Key Features:**\n- 🚀 Supports Volto (modern React frontend) and Classic UI\n- 📦 High availability with configurable replicas\n- ⚡ Optional Varnish HTTP caching layer\n- 🔧 Fine-grained resource and probe configuration\n- 🌍 Multi-language support (TypeScript/JavaScript and Python)\n- ✅ Type-safe infrastructure as code\n\n## Quick Start\n\n### Installation\n\n**TypeScript/JavaScript:**\n```bash\nnpm install @bluedynamics/cdk8s-plone\n```\n\n**Python:**\n```bash\npip install cdk8s-plone\n```\n\n### Basic Example\n\n```typescript\nimport { App, Chart } from 'cdk8s';\nimport { Plone, PloneVariant } from '@bluedynamics/cdk8s-plone';\n\nconst app = new App();\nconst chart = new Chart(app, 'PloneDeployment');\n\nnew Plone(chart, 'my-plone', {\n variant: PloneVariant.VOLTO,\n backend: {\n image: 'plone/plone-backend:6.1.3',\n replicas: 3,\n },\n frontend: {\n image: 'plone/plone-frontend:16.0.0',\n replicas: 2,\n },\n});\n\napp.synth();\n```\n\nGenerate Kubernetes manifests:\n```bash\ncdk8s synth\nkubectl apply -f dist/\n```\n\n## Documentation\n\n**📚 Full documentation:** https://bluedynamics.github.io/cdk8s-plone/\n\n- [Quick Start Tutorial](https://bluedynamics.github.io/cdk8s-plone/tutorials/01-quick-start.html)\n- [Configuration Reference](https://bluedynamics.github.io/cdk8s-plone/reference/configuration-options.html)\n- [Architecture Overview](https://bluedynamics.github.io/cdk8s-plone/explanation/architecture.html)\n- [Complete API Documentation](./API.md)\n\n## Examples\n\nComplete working examples are available in the [`examples/`](examples/) directory:\n\n- **[Production Volto](examples/production-volto/)** - Production-ready Plone 6 deployment with modern UI:\n - Volto frontend (React) + REST API backend\n - PostgreSQL with RelStorage (CloudNativePG or Bitnami)\n - Varnish HTTP caching with kube-httpcache\n - Ingress support (Traefik/Kong) with TLS\n\n- **[Classic UI](examples/classic-ui/)** - Traditional Plone deployment with server-side rendering:\n - Classic UI (traditional Plone interface)\n - PostgreSQL with RelStorage (CloudNativePG or Bitnami)\n - Varnish HTTP caching with kube-httpcache\n - Ingress support (Traefik/Kong) with TLS\n - Simpler architecture (no separate frontend)\n\n### Prometheus Metrics\n\nEnable Prometheus ServiceMonitor for metrics collection (requires Prometheus Operator):\n\n```typescript\nnew Plone(chart, 'my-plone', {\n backend: {\n servicemonitor: true,\n metricsPath: '/metrics', // optional, defaults to '/metrics'\n },\n frontend: {\n servicemonitor: true,\n metricsPort: 9090, // optional, defaults to service port\n },\n});\n```\n\n**Note:** You must instrument your Plone backend/frontend to expose metrics at the configured endpoint. For Volto/Node.js frontends, consider using [prom-client](https://www.npmjs.com/package/prom-client) or [express-prometheus-middleware](https://www.npmjs.com/package/express-prometheus-middleware).\n\n## Requirements\n- **kubectl** - [Install kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)\n- **Node.js 16+** (for TypeScript/JavaScript) - [Install Node.js](https://nodejs.org/)\n- **Python 3.8+** (for Python) - [Install Python](https://www.python.org/)\n- **Kubernetes cluster** (local or cloud)\n\nFor detailed setup instructions, see [Setup Prerequisites](https://bluedynamics.github.io/cdk8s-plone/how-to/setup-prerequisites.html).\n\n## Development\n\nThis project uses [Projen](https://projen.io/) for project management.\n\n```bash\n# Install dependencies\nnpm install\n\n# Run tests\nnpm test\n\n# Build\nnpm run build\n\n# Update project configuration\n# Edit .projenrc.ts, then run:\nnpx projen\n```\n\nFor detailed development instructions, see [CONTRIBUTING.md](./CONTRIBUTING.md) (if available).\n\n## Resources\n\n- [CDK8S Documentation](https://cdk8s.io/)\n- [Plone CMS](https://plone.org/)\n- [kube-httpcache](https://github.com/mittwald/kube-httpcache) (for HTTP caching)\n- [CloudNativePG](https://cloudnative-pg.io/) (for PostgreSQL management)\n\n## License\n\n[Apache 2.0](LICENSE)\n\n## Maintainers\n\nMaintained by [Blue Dynamics Alliance](https://github.com/bluedynamics)\n\n**Author:** Jens W. Klein (jk@kleinundpartner.at)\n"
111
+ "markdown": "# CDK8S Plone\n\n> TypeScript and Python library for deploying Plone CMS to Kubernetes using CDK8S\n\n[![npm version](https://badge.fury.io/js/%40bluedynamics%2Fcdk8s-plone.svg)](https://www.npmjs.com/package/@bluedynamics/cdk8s-plone)\n[![PyPI version](https://badge.fury.io/py/cdk8s-plone.svg)](https://pypi.org/project/cdk8s-plone/)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)\n\n## Overview\n\ncdk8s-plone provides CDK8S constructs for deploying [Plone CMS](https://plone.org/) on Kubernetes. Define your infrastructure using TypeScript or Python and generate Kubernetes manifests automatically.\n\n**Key Features:**\n- 🚀 Supports Volto (modern React frontend) and Classic UI\n- 📦 High availability with configurable replicas\n- ⚡ Optional Varnish HTTP caching via kube-httpcache (`PloneHttpcache`) or cloud-vinyl VinylCache operator (`PloneVinylCache`)\n- 🔧 Fine-grained resource and probe configuration\n- 🌍 Multi-language support (TypeScript/JavaScript and Python)\n- ✅ Type-safe infrastructure as code\n\n## Quick Start\n\n### Installation\n\n**TypeScript/JavaScript:**\n```bash\nnpm install @bluedynamics/cdk8s-plone\n```\n\n**Python:**\n```bash\npip install cdk8s-plone\n```\n\n### Basic Example\n\n```typescript\nimport { App, Chart } from 'cdk8s';\nimport { Plone, PloneVariant } from '@bluedynamics/cdk8s-plone';\n\nconst app = new App();\nconst chart = new Chart(app, 'PloneDeployment');\n\nnew Plone(chart, 'my-plone', {\n variant: PloneVariant.VOLTO,\n backend: {\n image: 'plone/plone-backend:6.1.3',\n replicas: 3,\n },\n frontend: {\n image: 'plone/plone-frontend:16.0.0',\n replicas: 2,\n },\n});\n\napp.synth();\n```\n\nGenerate Kubernetes manifests:\n```bash\ncdk8s synth\nkubectl apply -f dist/\n```\n\n## Documentation\n\n**📚 Full documentation:** https://bluedynamics.github.io/cdk8s-plone/\n\n- [Quick Start Tutorial](https://bluedynamics.github.io/cdk8s-plone/tutorials/01-quick-start.html)\n- [Configuration Reference](https://bluedynamics.github.io/cdk8s-plone/reference/configuration-options.html)\n- [Architecture Overview](https://bluedynamics.github.io/cdk8s-plone/explanation/architecture.html)\n- [Complete API Documentation](./API.md)\n\n## Examples\n\nComplete working examples are available in the [`examples/`](examples/) directory:\n\n- **[Production Volto](examples/production-volto/)** - Production-ready Plone 6 deployment with modern UI:\n - Volto frontend (React) + REST API backend\n - PostgreSQL with RelStorage (CloudNativePG or Bitnami)\n - Varnish HTTP caching with kube-httpcache\n - Ingress support (Traefik/Kong) with TLS\n\n- **[Classic UI](examples/classic-ui/)** - Traditional Plone deployment with server-side rendering:\n - Classic UI (traditional Plone interface)\n - PostgreSQL with RelStorage (CloudNativePG or Bitnami)\n - Varnish HTTP caching with kube-httpcache\n - Ingress support (Traefik/Kong) with TLS\n - Simpler architecture (no separate frontend)\n\n### Prometheus Metrics\n\nEnable Prometheus ServiceMonitor for metrics collection (requires Prometheus Operator):\n\n```typescript\nnew Plone(chart, 'my-plone', {\n backend: {\n servicemonitor: true,\n metricsPath: '/metrics', // optional, defaults to '/metrics'\n },\n frontend: {\n servicemonitor: true,\n metricsPort: 9090, // optional, defaults to service port\n },\n});\n```\n\n**Note:** You must instrument your Plone backend/frontend to expose metrics at the configured endpoint. For Volto/Node.js frontends, consider using [prom-client](https://www.npmjs.com/package/prom-client) or [express-prometheus-middleware](https://www.npmjs.com/package/express-prometheus-middleware).\n\n## Requirements\n- **kubectl** - [Install kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl)\n- **Node.js 16+** (for TypeScript/JavaScript) - [Install Node.js](https://nodejs.org/)\n- **Python 3.8+** (for Python) - [Install Python](https://www.python.org/)\n- **Kubernetes cluster** (local or cloud)\n\nFor detailed setup instructions, see [Setup Prerequisites](https://bluedynamics.github.io/cdk8s-plone/how-to/setup-prerequisites.html).\n\n## Development\n\nThis project uses [Projen](https://projen.io/) for project management.\n\n```bash\n# Install dependencies\nnpm install\n\n# Run tests\nnpm test\n\n# Build\nnpm run build\n\n# Update project configuration\n# Edit .projenrc.ts, then run:\nnpx projen\n```\n\nFor detailed development instructions, see [CONTRIBUTING.md](./CONTRIBUTING.md) (if available).\n\n## Resources\n\n- [CDK8S Documentation](https://cdk8s.io/)\n- [Plone CMS](https://plone.org/)\n- [kube-httpcache](https://github.com/mittwald/kube-httpcache) (for HTTP caching)\n- [CloudNativePG](https://cloudnative-pg.io/) (for PostgreSQL management)\n\n## License\n\n[Apache 2.0](LICENSE)\n\n## Maintainers\n\nMaintained by [Blue Dynamics Alliance](https://github.com/bluedynamics)\n\n**Author:** Jens W. Klein (jk@kleinundpartner.at)\n"
112
112
  },
113
113
  "repository": {
114
114
  "type": "git",
@@ -279,7 +279,7 @@
279
279
  },
280
280
  "locationInModule": {
281
281
  "filename": "src/plone.ts",
282
- "line": 316
282
+ "line": 324
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": 293
309
+ "line": 301
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": 298
322
+ "line": 306
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": 314
337
+ "line": 322
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": 309
352
+ "line": 317
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": 304
368
+ "line": 312
369
369
  },
370
370
  "name": "frontendServiceName",
371
371
  "optional": true,
@@ -722,6 +722,31 @@
722
722
  }
723
723
  }
724
724
  },
725
+ {
726
+ "abstract": true,
727
+ "docs": {
728
+ "default": "- no node selector",
729
+ "example": "{ 'topology.kubernetes.io/region': 'fsn1' }",
730
+ "remarks": "Use to constrain pods to nodes with matching labels, e.g. for region affinity.",
731
+ "stability": "stable",
732
+ "summary": "Node selector labels for pod scheduling."
733
+ },
734
+ "immutable": true,
735
+ "locationInModule": {
736
+ "filename": "src/plone.ts",
737
+ "line": 212
738
+ },
739
+ "name": "nodeSelector",
740
+ "optional": true,
741
+ "type": {
742
+ "collection": {
743
+ "elementtype": {
744
+ "primitive": "string"
745
+ },
746
+ "kind": "map"
747
+ }
748
+ }
749
+ },
725
750
  {
726
751
  "abstract": true,
727
752
  "docs": {
@@ -1341,7 +1366,7 @@
1341
1366
  "kind": "interface",
1342
1367
  "locationInModule": {
1343
1368
  "filename": "src/plone.ts",
1344
- "line": 226
1369
+ "line": 234
1345
1370
  },
1346
1371
  "name": "PloneOptions",
1347
1372
  "properties": [
@@ -1355,7 +1380,7 @@
1355
1380
  "immutable": true,
1356
1381
  "locationInModule": {
1357
1382
  "filename": "src/plone.ts",
1358
- "line": 251
1383
+ "line": 259
1359
1384
  },
1360
1385
  "name": "backend",
1361
1386
  "optional": true,
@@ -1374,7 +1399,7 @@
1374
1399
  "immutable": true,
1375
1400
  "locationInModule": {
1376
1401
  "filename": "src/plone.ts",
1377
- "line": 258
1402
+ "line": 266
1378
1403
  },
1379
1404
  "name": "frontend",
1380
1405
  "optional": true,
@@ -1394,7 +1419,7 @@
1394
1419
  "immutable": true,
1395
1420
  "locationInModule": {
1396
1421
  "filename": "src/plone.ts",
1397
- "line": 266
1422
+ "line": 274
1398
1423
  },
1399
1424
  "name": "imagePullSecrets",
1400
1425
  "optional": true,
@@ -1418,7 +1443,7 @@
1418
1443
  "immutable": true,
1419
1444
  "locationInModule": {
1420
1445
  "filename": "src/plone.ts",
1421
- "line": 239
1446
+ "line": 247
1422
1447
  },
1423
1448
  "name": "siteId",
1424
1449
  "optional": true,
@@ -1436,7 +1461,7 @@
1436
1461
  "immutable": true,
1437
1462
  "locationInModule": {
1438
1463
  "filename": "src/plone.ts",
1439
- "line": 245
1464
+ "line": 253
1440
1465
  },
1441
1466
  "name": "variant",
1442
1467
  "optional": true,
@@ -1455,7 +1480,7 @@
1455
1480
  "immutable": true,
1456
1481
  "locationInModule": {
1457
1482
  "filename": "src/plone.ts",
1458
- "line": 232
1483
+ "line": 240
1459
1484
  },
1460
1485
  "name": "version",
1461
1486
  "optional": true,
@@ -1476,7 +1501,7 @@
1476
1501
  "kind": "enum",
1477
1502
  "locationInModule": {
1478
1503
  "filename": "src/plone.ts",
1479
- "line": 209
1504
+ "line": 217
1480
1505
  },
1481
1506
  "members": [
1482
1507
  {
@@ -1498,8 +1523,420 @@
1498
1523
  ],
1499
1524
  "name": "PloneVariant",
1500
1525
  "symbolId": "src/plone:PloneVariant"
1526
+ },
1527
+ "@bluedynamics/cdk8s-plone.PloneVinylCache": {
1528
+ "assembly": "@bluedynamics/cdk8s-plone",
1529
+ "base": "constructs.Construct",
1530
+ "docs": {
1531
+ "example": "const plone = new Plone(chart, 'plone');\nconst cache = new PloneVinylCache(chart, 'cache', {\n plone: plone,\n replicas: 2,\n});\n// Use cache.vinylCacheServiceName for IngressRoute",
1532
+ "remarks": "Creates a VinylCache custom resource with Plone backend/frontend services\nauto-configured as backends. The cloud-vinyl operator manages the full\nVarnish lifecycle including VCL generation, agent delivery, and monitoring.\n\nRequires the cloud-vinyl operator to be installed in the cluster.",
1533
+ "stability": "stable",
1534
+ "summary": "PloneVinylCache construct for deploying Varnish Cache via cloud-vinyl operator."
1535
+ },
1536
+ "fqn": "@bluedynamics/cdk8s-plone.PloneVinylCache",
1537
+ "initializer": {
1538
+ "docs": {
1539
+ "stability": "stable"
1540
+ },
1541
+ "locationInModule": {
1542
+ "filename": "src/vinylcache.ts",
1543
+ "line": 155
1544
+ },
1545
+ "parameters": [
1546
+ {
1547
+ "name": "scope",
1548
+ "type": {
1549
+ "fqn": "constructs.Construct"
1550
+ }
1551
+ },
1552
+ {
1553
+ "name": "id",
1554
+ "type": {
1555
+ "primitive": "string"
1556
+ }
1557
+ },
1558
+ {
1559
+ "name": "options",
1560
+ "type": {
1561
+ "fqn": "@bluedynamics/cdk8s-plone.PloneVinylCacheOptions"
1562
+ }
1563
+ }
1564
+ ]
1565
+ },
1566
+ "kind": "class",
1567
+ "locationInModule": {
1568
+ "filename": "src/vinylcache.ts",
1569
+ "line": 148
1570
+ },
1571
+ "name": "PloneVinylCache",
1572
+ "properties": [
1573
+ {
1574
+ "docs": {
1575
+ "remarks": "Use this to reference the cache service from ingress or other constructs.",
1576
+ "stability": "stable",
1577
+ "summary": "Name of the VinylCache service created by the operator."
1578
+ },
1579
+ "immutable": true,
1580
+ "locationInModule": {
1581
+ "filename": "src/vinylcache.ts",
1582
+ "line": 153
1583
+ },
1584
+ "name": "vinylCacheServiceName",
1585
+ "type": {
1586
+ "primitive": "string"
1587
+ }
1588
+ }
1589
+ ],
1590
+ "symbolId": "src/vinylcache:PloneVinylCache"
1591
+ },
1592
+ "@bluedynamics/cdk8s-plone.PloneVinylCacheOptions": {
1593
+ "assembly": "@bluedynamics/cdk8s-plone",
1594
+ "datatype": true,
1595
+ "docs": {
1596
+ "remarks": "Creates a VinylCache custom resource that the cloud-vinyl operator\nreconciles into a Varnish Cache cluster with agent-based VCL delivery.\n\nRequires the cloud-vinyl operator to be installed in the cluster.",
1597
+ "stability": "stable",
1598
+ "summary": "Configuration options for PloneVinylCache (cloud-vinyl operator)."
1599
+ },
1600
+ "fqn": "@bluedynamics/cdk8s-plone.PloneVinylCacheOptions",
1601
+ "kind": "interface",
1602
+ "locationInModule": {
1603
+ "filename": "src/vinylcache.ts",
1604
+ "line": 49
1605
+ },
1606
+ "name": "PloneVinylCacheOptions",
1607
+ "properties": [
1608
+ {
1609
+ "abstract": true,
1610
+ "docs": {
1611
+ "remarks": "Backends are auto-configured from the Plone services.",
1612
+ "stability": "stable",
1613
+ "summary": "The Plone construct to attach the cache to."
1614
+ },
1615
+ "immutable": true,
1616
+ "locationInModule": {
1617
+ "filename": "src/vinylcache.ts",
1618
+ "line": 54
1619
+ },
1620
+ "name": "plone",
1621
+ "type": {
1622
+ "fqn": "@bluedynamics/cdk8s-plone.Plone"
1623
+ }
1624
+ },
1625
+ {
1626
+ "abstract": true,
1627
+ "docs": {
1628
+ "default": "'shard'",
1629
+ "stability": "stable",
1630
+ "summary": "Director type for load distribution."
1631
+ },
1632
+ "immutable": true,
1633
+ "locationInModule": {
1634
+ "filename": "src/vinylcache.ts",
1635
+ "line": 90
1636
+ },
1637
+ "name": "director",
1638
+ "optional": true,
1639
+ "type": {
1640
+ "primitive": "string"
1641
+ }
1642
+ },
1643
+ {
1644
+ "abstract": true,
1645
+ "docs": {
1646
+ "default": "'varnish:7.6'",
1647
+ "stability": "stable",
1648
+ "summary": "Container image for the Varnish pods."
1649
+ },
1650
+ "immutable": true,
1651
+ "locationInModule": {
1652
+ "filename": "src/vinylcache.ts",
1653
+ "line": 122
1654
+ },
1655
+ "name": "image",
1656
+ "optional": true,
1657
+ "type": {
1658
+ "primitive": "string"
1659
+ }
1660
+ },
1661
+ {
1662
+ "abstract": true,
1663
+ "docs": {
1664
+ "default": "true",
1665
+ "stability": "stable",
1666
+ "summary": "Enable cache invalidation (PURGE, BAN, xkey)."
1667
+ },
1668
+ "immutable": true,
1669
+ "locationInModule": {
1670
+ "filename": "src/vinylcache.ts",
1671
+ "line": 110
1672
+ },
1673
+ "name": "invalidation",
1674
+ "optional": true,
1675
+ "type": {
1676
+ "primitive": "boolean"
1677
+ }
1678
+ },
1679
+ {
1680
+ "abstract": true,
1681
+ "docs": {
1682
+ "default": "'500m'",
1683
+ "stability": "stable",
1684
+ "summary": "CPU limit for Varnish pods."
1685
+ },
1686
+ "immutable": true,
1687
+ "locationInModule": {
1688
+ "filename": "src/vinylcache.ts",
1689
+ "line": 78
1690
+ },
1691
+ "name": "limitCpu",
1692
+ "optional": true,
1693
+ "type": {
1694
+ "primitive": "string"
1695
+ }
1696
+ },
1697
+ {
1698
+ "abstract": true,
1699
+ "docs": {
1700
+ "default": "'512Mi'",
1701
+ "stability": "stable",
1702
+ "summary": "Memory limit for Varnish pods."
1703
+ },
1704
+ "immutable": true,
1705
+ "locationInModule": {
1706
+ "filename": "src/vinylcache.ts",
1707
+ "line": 84
1708
+ },
1709
+ "name": "limitMemory",
1710
+ "optional": true,
1711
+ "type": {
1712
+ "primitive": "string"
1713
+ }
1714
+ },
1715
+ {
1716
+ "abstract": true,
1717
+ "docs": {
1718
+ "default": "false",
1719
+ "stability": "stable",
1720
+ "summary": "Enable Prometheus monitoring (metrics + ServiceMonitor)."
1721
+ },
1722
+ "immutable": true,
1723
+ "locationInModule": {
1724
+ "filename": "src/vinylcache.ts",
1725
+ "line": 116
1726
+ },
1727
+ "name": "monitoring",
1728
+ "optional": true,
1729
+ "type": {
1730
+ "primitive": "boolean"
1731
+ }
1732
+ },
1733
+ {
1734
+ "abstract": true,
1735
+ "docs": {
1736
+ "default": "2",
1737
+ "stability": "stable",
1738
+ "summary": "Number of Varnish pod replicas."
1739
+ },
1740
+ "immutable": true,
1741
+ "locationInModule": {
1742
+ "filename": "src/vinylcache.ts",
1743
+ "line": 60
1744
+ },
1745
+ "name": "replicas",
1746
+ "optional": true,
1747
+ "type": {
1748
+ "primitive": "number"
1749
+ }
1750
+ },
1751
+ {
1752
+ "abstract": true,
1753
+ "docs": {
1754
+ "default": "'100m'",
1755
+ "stability": "stable",
1756
+ "summary": "CPU request for Varnish pods."
1757
+ },
1758
+ "immutable": true,
1759
+ "locationInModule": {
1760
+ "filename": "src/vinylcache.ts",
1761
+ "line": 66
1762
+ },
1763
+ "name": "requestCpu",
1764
+ "optional": true,
1765
+ "type": {
1766
+ "primitive": "string"
1767
+ }
1768
+ },
1769
+ {
1770
+ "abstract": true,
1771
+ "docs": {
1772
+ "default": "'256Mi'",
1773
+ "stability": "stable",
1774
+ "summary": "Memory request for Varnish pods."
1775
+ },
1776
+ "immutable": true,
1777
+ "locationInModule": {
1778
+ "filename": "src/vinylcache.ts",
1779
+ "line": 72
1780
+ },
1781
+ "name": "requestMemory",
1782
+ "optional": true,
1783
+ "type": {
1784
+ "primitive": "string"
1785
+ }
1786
+ },
1787
+ {
1788
+ "abstract": true,
1789
+ "docs": {
1790
+ "default": "- no tolerations",
1791
+ "stability": "stable",
1792
+ "summary": "Tolerations for the Varnish pods."
1793
+ },
1794
+ "immutable": true,
1795
+ "locationInModule": {
1796
+ "filename": "src/vinylcache.ts",
1797
+ "line": 128
1798
+ },
1799
+ "name": "tolerations",
1800
+ "optional": true,
1801
+ "type": {
1802
+ "collection": {
1803
+ "elementtype": {
1804
+ "fqn": "@bluedynamics/cdk8s-plone.VinylCacheToleration"
1805
+ },
1806
+ "kind": "array"
1807
+ }
1808
+ }
1809
+ },
1810
+ {
1811
+ "abstract": true,
1812
+ "docs": {
1813
+ "default": "- uses built-in plone-vinyl-backend-response.vcl",
1814
+ "remarks": "Replaces the default Plone backend_response snippet.",
1815
+ "stability": "stable",
1816
+ "summary": "Custom VCL snippet for vcl_backend_response subroutine."
1817
+ },
1818
+ "immutable": true,
1819
+ "locationInModule": {
1820
+ "filename": "src/vinylcache.ts",
1821
+ "line": 104
1822
+ },
1823
+ "name": "vclBackendResponseSnippet",
1824
+ "optional": true,
1825
+ "type": {
1826
+ "primitive": "string"
1827
+ }
1828
+ },
1829
+ {
1830
+ "abstract": true,
1831
+ "docs": {
1832
+ "default": "- uses built-in plone-vinyl-recv.vcl",
1833
+ "remarks": "Replaces the default Plone recv snippet.",
1834
+ "stability": "stable",
1835
+ "summary": "Custom VCL snippet for vcl_recv subroutine."
1836
+ },
1837
+ "immutable": true,
1838
+ "locationInModule": {
1839
+ "filename": "src/vinylcache.ts",
1840
+ "line": 97
1841
+ },
1842
+ "name": "vclRecvSnippet",
1843
+ "optional": true,
1844
+ "type": {
1845
+ "primitive": "string"
1846
+ }
1847
+ }
1848
+ ],
1849
+ "symbolId": "src/vinylcache:PloneVinylCacheOptions"
1850
+ },
1851
+ "@bluedynamics/cdk8s-plone.VinylCacheToleration": {
1852
+ "assembly": "@bluedynamics/cdk8s-plone",
1853
+ "datatype": true,
1854
+ "docs": {
1855
+ "stability": "stable",
1856
+ "summary": "A Kubernetes toleration for the Varnish pods."
1857
+ },
1858
+ "fqn": "@bluedynamics/cdk8s-plone.VinylCacheToleration",
1859
+ "kind": "interface",
1860
+ "locationInModule": {
1861
+ "filename": "src/vinylcache.ts",
1862
+ "line": 16
1863
+ },
1864
+ "name": "VinylCacheToleration",
1865
+ "properties": [
1866
+ {
1867
+ "abstract": true,
1868
+ "docs": {
1869
+ "stability": "stable",
1870
+ "summary": "The taint key to tolerate."
1871
+ },
1872
+ "immutable": true,
1873
+ "locationInModule": {
1874
+ "filename": "src/vinylcache.ts",
1875
+ "line": 20
1876
+ },
1877
+ "name": "key",
1878
+ "type": {
1879
+ "primitive": "string"
1880
+ }
1881
+ },
1882
+ {
1883
+ "abstract": true,
1884
+ "docs": {
1885
+ "default": "- tolerate all effects",
1886
+ "stability": "stable",
1887
+ "summary": "The taint effect to tolerate (NoSchedule, PreferNoSchedule, NoExecute)."
1888
+ },
1889
+ "immutable": true,
1890
+ "locationInModule": {
1891
+ "filename": "src/vinylcache.ts",
1892
+ "line": 38
1893
+ },
1894
+ "name": "effect",
1895
+ "optional": true,
1896
+ "type": {
1897
+ "primitive": "string"
1898
+ }
1899
+ },
1900
+ {
1901
+ "abstract": true,
1902
+ "docs": {
1903
+ "default": "'Equal'",
1904
+ "stability": "stable",
1905
+ "summary": "The operator (Equal or Exists)."
1906
+ },
1907
+ "immutable": true,
1908
+ "locationInModule": {
1909
+ "filename": "src/vinylcache.ts",
1910
+ "line": 26
1911
+ },
1912
+ "name": "operator",
1913
+ "optional": true,
1914
+ "type": {
1915
+ "primitive": "string"
1916
+ }
1917
+ },
1918
+ {
1919
+ "abstract": true,
1920
+ "docs": {
1921
+ "default": "- no value",
1922
+ "stability": "stable",
1923
+ "summary": "The taint value to match (when operator is Equal)."
1924
+ },
1925
+ "immutable": true,
1926
+ "locationInModule": {
1927
+ "filename": "src/vinylcache.ts",
1928
+ "line": 32
1929
+ },
1930
+ "name": "value",
1931
+ "optional": true,
1932
+ "type": {
1933
+ "primitive": "string"
1934
+ }
1935
+ }
1936
+ ],
1937
+ "symbolId": "src/vinylcache:VinylCacheToleration"
1501
1938
  }
1502
1939
  },
1503
- "version": "0.1.23",
1504
- "fingerprint": "e1xGiidRJxXPb8CpBwL+ws1RNCgQA+xqQ5AXRAZh78I="
1940
+ "version": "0.1.25",
1941
+ "fingerprint": "Uzoxn5mBShzMv9UhB94ZeqRknaTOb9TNjpMQ7NrEqcs="
1505
1942
  }