underpost 2.8.651 → 2.8.781

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.
Files changed (52) hide show
  1. package/.vscode/extensions.json +37 -2
  2. package/.vscode/settings.json +2 -0
  3. package/CHANGELOG.md +24 -4
  4. package/README.md +5 -5
  5. package/bin/deploy.js +1455 -144
  6. package/bin/file.js +2 -4
  7. package/cli.md +57 -14
  8. package/docker-compose.yml +1 -1
  9. package/manifests/deployment/adminer/deployment.yaml +32 -0
  10. package/manifests/deployment/adminer/kustomization.yaml +7 -0
  11. package/manifests/deployment/adminer/service.yaml +13 -0
  12. package/manifests/deployment/fastapi/backend-deployment.yml +120 -0
  13. package/manifests/deployment/fastapi/backend-service.yml +19 -0
  14. package/manifests/deployment/fastapi/frontend-deployment.yml +54 -0
  15. package/manifests/deployment/fastapi/frontend-service.yml +15 -0
  16. package/manifests/deployment/fastapi/initial_data.sh +56 -0
  17. package/manifests/deployment/kafka/deployment.yaml +69 -0
  18. package/manifests/deployment/spark/spark-pi-py.yaml +21 -0
  19. package/manifests/envoy-service-nodeport.yaml +23 -0
  20. package/manifests/kubeadm-calico-config.yaml +119 -0
  21. package/manifests/kubelet-config.yaml +65 -0
  22. package/manifests/mongodb/kustomization.yaml +1 -1
  23. package/manifests/mongodb/statefulset.yaml +12 -11
  24. package/manifests/mongodb/storage-class.yaml +9 -0
  25. package/manifests/mongodb-4.4/service-deployment.yaml +1 -1
  26. package/manifests/mysql/kustomization.yaml +7 -0
  27. package/manifests/mysql/pv-pvc.yaml +27 -0
  28. package/manifests/mysql/statefulset.yaml +55 -0
  29. package/manifests/postgresql/configmap.yaml +9 -0
  30. package/manifests/postgresql/kustomization.yaml +10 -0
  31. package/manifests/postgresql/pv.yaml +15 -0
  32. package/manifests/postgresql/pvc.yaml +13 -0
  33. package/manifests/postgresql/service.yaml +10 -0
  34. package/manifests/postgresql/statefulset.yaml +37 -0
  35. package/manifests/valkey/statefulset.yaml +4 -3
  36. package/package.json +2 -1
  37. package/src/cli/cluster.js +281 -27
  38. package/src/cli/deploy.js +82 -13
  39. package/src/cli/fs.js +14 -3
  40. package/src/cli/image.js +34 -7
  41. package/src/cli/index.js +36 -1
  42. package/src/cli/lxd.js +19 -0
  43. package/src/cli/monitor.js +86 -38
  44. package/src/cli/repository.js +9 -6
  45. package/src/client/components/core/JoyStick.js +2 -2
  46. package/src/client/components/core/Modal.js +1 -0
  47. package/src/index.js +1 -1
  48. package/src/runtime/lampp/Dockerfile +1 -1
  49. package/src/server/conf.js +5 -1
  50. package/src/server/dns.js +47 -17
  51. package/src/server/runtime.js +2 -0
  52. package/src/server/start.js +0 -1
package/bin/file.js CHANGED
@@ -139,12 +139,10 @@ try {
139
139
  const splitKeyword = '## underpost ci/cd cli';
140
140
  fs.writeFileSync(
141
141
  `../pwa-microservices-template/README.md`,
142
- fs.readFileSync(`../pwa-microservices-template/README.md`, 'utf8').replace(
143
- `<!-- -->`,
142
+ fs.readFileSync(`../pwa-microservices-template/README.md`, 'utf8').split(`<!-- -->`)[0] +
144
143
  `<!-- -->
145
144
  ${splitKeyword + fs.readFileSync(`./README.md`, 'utf8').split(splitKeyword)[1]}`,
146
- 'utf8',
147
- ),
145
+ 'utf8',
148
146
  );
149
147
  }
150
148
 
package/cli.md CHANGED
@@ -1,4 +1,4 @@
1
- ## underpost ci/cd cli v2.8.651
1
+ ## underpost ci/cd cli v2.8.781
2
2
 
3
3
  ### Usage: `underpost [options] [command]`
4
4
  ```
@@ -10,17 +10,17 @@ Commands:
10
10
  new <app-name> Create a new project
11
11
  start [options] <deploy-id> [env] Start up server, build pipelines, or services
12
12
  clone [options] <uri> Clone github repository
13
- pull <path> <uri> Pull github repository
13
+ pull [options] <path> <uri> Pull github repository
14
14
  cmt [options] <path> <commit-type> [module-tag] [message] Commit github repository
15
15
  push [options] <path> <uri> Push github repository
16
16
  env <deploy-id> [env] Set environment variables files and conf related to <deploy-id>
17
17
  config <operator> [key] [value] Manage configuration, operators
18
18
  root Get npm root path
19
19
  cluster [options] [pod-name] Manage cluster, for default initialization base kind cluster
20
- deploy [options] <deploy-list> [env] Manage deployment, for default deploy development pods
20
+ deploy [options] [deploy-list] [env] Manage deployment, for default deploy development pods
21
21
  secret [options] <platform> Manage secrets
22
22
  dockerfile-image-build [options] Build image from Dockerfile
23
- dockerfile-pull-base-images Pull underpost dockerfile images requirements
23
+ dockerfile-pull-base-images [options] Pull underpost dockerfile images requirements
24
24
  install Fast import underpost npm dependencies
25
25
  db [options] <deploy-list> Manage databases
26
26
  script [options] <operator> <script-name> [script-value] Supports a number of built-in underpost global scripts and their preset life cycle events as well as arbitrary scripts
@@ -28,6 +28,7 @@ Commands:
28
28
  fs [options] [path] File storage management, for default upload file
29
29
  test [options] [deploy-list] Manage Test, for default run current underpost default test
30
30
  monitor [options] <deploy-id> [env] Monitor health server management
31
+ lxd [options] Lxd management
31
32
  help [command] display help for command
32
33
 
33
34
  ```
@@ -79,6 +80,7 @@ Arguments:
79
80
 
80
81
  Options:
81
82
  --bare Clone only .git files
83
+ -g8 Use g8 repo extension
82
84
  -h, --help display help for command
83
85
 
84
86
  ```
@@ -95,6 +97,7 @@ Arguments:
95
97
  uri e.g. username/repository
96
98
 
97
99
  Options:
100
+ -g8 Use g8 repo extension
98
101
  -h, --help display help for command
99
102
 
100
103
  ```
@@ -134,6 +137,7 @@ Arguments:
134
137
 
135
138
  Options:
136
139
  -f Force push overwriting repository
140
+ -g8 Use g8 repo extension
137
141
  -h, --help display help for command
138
142
 
139
143
  ```
@@ -196,18 +200,26 @@ Arguments:
196
200
  Options:
197
201
  --reset Delete all clusters and prune all data and caches
198
202
  --mariadb Init with mariadb statefulset
203
+ --mysql Init with mysql statefulset
199
204
  --mongodb Init with mongodb statefulset
205
+ --postgresql Init with postgresql statefulset
200
206
  --mongodb4 Init with mongodb 4.4 service
207
+ --istio Init base istio cluster
201
208
  --valkey Init with valkey service
202
209
  --contour Init with project contour base HTTPProxy and envoy
203
210
  --cert-manager Init with letsencrypt-prod ClusterIssuer
211
+ --dedicated-gpu Init with dedicated gpu base resources env
204
212
  --info Get all kinds objects deployed
205
213
  --full Init with all statefulsets and services available
206
214
  --ns-use <ns-name> Switches current context to namespace
215
+ --kubeadm Init with kubeadm controlplane management
207
216
  --dev init with dev cluster
208
217
  --list-pods Display list pods information
209
218
  --info-capacity display current total machine capacity info
210
219
  --info-capacity-pod display current machine capacity pod info
220
+ --pull-image Set optional pull associated image
221
+ --init-host Install k8s node necessary cli env: kind, kubeadm,
222
+ docker, podman, helm
211
223
  -h, --help display help for command
212
224
 
213
225
  ```
@@ -215,7 +227,7 @@ Options:
215
227
 
216
228
  ### `deploy` :
217
229
  ```
218
- Usage: underpost deploy [options] <deploy-list> [env]
230
+ Usage: underpost deploy [options] [deploy-list] [env]
219
231
 
220
232
  Manage deployment, for default deploy development pods
221
233
 
@@ -238,6 +250,13 @@ Options:
238
250
  --replicas <replicas> Set custom number of replicas
239
251
  --versions <deployment-versions> Comma separated custom deployment versions
240
252
  --traffic <traffic-versions> Comma separated custom deployment traffic
253
+ --disable-update-deployment Disable update deployments
254
+ --info-traffic get traffic conf form current resources
255
+ deployments
256
+ --kubeadm Enable kubeadm context
257
+ --restore-hosts Restore defautl etc hosts
258
+ --rebuild-clients-bundle Inside container, rebuild clients bundle,
259
+ only static public or storage client files
241
260
  -h, --help display help for command
242
261
 
243
262
  ```
@@ -274,6 +293,7 @@ Options:
274
293
  --dockerfile-name [dockerfile-name] set Dockerfile name
275
294
  --podman-save Export tar file from podman
276
295
  --kind-load Import tar image to Kind cluster
296
+ --kubeadm-load Import tar image to Kubeadm cluster
277
297
  --secrets Dockerfile env secrets
278
298
  --secrets-path [secrets-path] Dockerfile custom path env secrets
279
299
  --no-cache Build without using cache
@@ -289,7 +309,11 @@ Options:
289
309
  Pull underpost dockerfile images requirements
290
310
 
291
311
  Options:
292
- -h, --help display help for command
312
+ --path [path] Dockerfile path
313
+ --kind-load Import tar image to Kind cluster
314
+ --kubeadm-load Import tar image to Kubeadm cluster
315
+ --version Set custom version
316
+ -h, --help display help for command
293
317
 
294
318
  ```
295
319
 
@@ -382,16 +406,17 @@ Options:
382
406
  File storage management, for default upload file
383
407
 
384
408
  Arguments:
385
- path Absolute or relative directory
409
+ path Absolute or relative directory
386
410
 
387
411
  Options:
388
- --rm Remove file
389
- --git Current git changes
390
- --recursive Upload files recursively
391
- --deploy-id <deploy-id> Deploy configuration id
392
- --pull Download file
393
- --force Force action
394
- -h, --help display help for command
412
+ --rm Remove file
413
+ --git Current git changes
414
+ --recursive Upload files recursively
415
+ --deploy-id <deploy-id> Deploy configuration id
416
+ --pull Download file
417
+ --force Force action
418
+ --storage-file-path <storage-file-path> custom file storage path
419
+ -h, --help display help for command
395
420
 
396
421
  ```
397
422
 
@@ -432,8 +457,26 @@ Options:
432
457
  --ms-interval <ms-interval> Custom ms interval delta time
433
458
  --now Exec immediately monitor script
434
459
  --single Disable recurrence
460
+ --replicas <replicas> Set custom number of replicas
435
461
  --type <type> Set custom monitor type
462
+ --sync Sync with current proxy deployments proxy
463
+ traffic
436
464
  -h, --help display help for command
437
465
 
438
466
  ```
467
+
468
+
469
+ ### `lxd` :
470
+ ```
471
+ Usage: underpost lxd [options]
472
+
473
+ Lxd management
474
+
475
+ Options:
476
+ --init Init lxd
477
+ --reset Reset lxd on current machine
478
+ --install Install lxd on current machine
479
+ -h, --help display help for command
480
+
481
+ ```
439
482
 
@@ -58,7 +58,7 @@ services:
58
58
  cpus: '0.25'
59
59
  memory: 20M
60
60
  labels: # labels in Compose file instead of Dockerfile
61
- engine.version: '2.8.651'
61
+ engine.version: '2.8.781'
62
62
  networks:
63
63
  - load-balancer
64
64
 
@@ -0,0 +1,32 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: adminer
5
+ labels:
6
+ app: adminer
7
+ group: db
8
+ spec:
9
+ replicas: 1
10
+ selector:
11
+ matchLabels:
12
+ app: adminer
13
+ template:
14
+ metadata:
15
+ labels:
16
+ app: adminer
17
+ group: db
18
+ spec:
19
+ containers:
20
+ - name: adminer
21
+ image: adminer:4.7.6-standalone
22
+ ports:
23
+ - containerPort: 8080
24
+ env:
25
+ - name: ADMINER_DESIGN
26
+ value: pepa-linha
27
+ - name: ADMINER_DEFAULT_SERVER
28
+ value: postgres
29
+ resources:
30
+ limits:
31
+ memory: '256Mi'
32
+ cpu: '500m'
@@ -0,0 +1,7 @@
1
+ ---
2
+ # kubectl apply -k manifests/deployment/adminer/.
3
+ apiVersion: kustomize.config.k8s.io/v1beta1
4
+ kind: Kustomization
5
+ resources:
6
+ - deployment.yaml
7
+ - service.yaml
@@ -0,0 +1,13 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: adminer
5
+ labels:
6
+ group: db
7
+ spec:
8
+ type: ClusterIP
9
+ selector:
10
+ app: adminer
11
+ ports:
12
+ - port: 8079
13
+ targetPort: 8080
@@ -0,0 +1,120 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: fastapi-backend
5
+ labels:
6
+ app: fastapi-backend
7
+ spec:
8
+ replicas: 2
9
+ selector:
10
+ matchLabels:
11
+ app: fastapi-backend
12
+ template:
13
+ metadata:
14
+ labels:
15
+ app: fastapi-backend
16
+ spec:
17
+ containers:
18
+ - name: fastapi-backend-container
19
+ image: localhost/fastapi-backend:latest
20
+ imagePullPolicy: IfNotPresent
21
+
22
+ ports:
23
+ - containerPort: 8000
24
+ name: http-api
25
+
26
+ env:
27
+ - name: POSTGRES_SERVER
28
+ value: postgres-service
29
+ - name: POSTGRES_PORT
30
+ value: '5432'
31
+ - name: POSTGRES_DB
32
+ valueFrom:
33
+ secretKeyRef:
34
+ name: fastapi-postgres-credentials
35
+ key: POSTGRES_DB
36
+ - name: POSTGRES_USER
37
+ valueFrom:
38
+ secretKeyRef:
39
+ name: fastapi-postgres-credentials
40
+ key: POSTGRES_USER
41
+ - name: POSTGRES_PASSWORD
42
+ valueFrom:
43
+ secretKeyRef:
44
+ name: fastapi-postgres-credentials
45
+ key: POSTGRES_PASSWORD
46
+
47
+ - name: PROJECT_NAME
48
+ value: 'Full Stack FastAPI Project'
49
+ - name: STACK_NAME
50
+ value: 'full-stack-fastapi-project'
51
+
52
+ - name: BACKEND_CORS_ORIGINS
53
+ value: 'http://localhost,http://localhost:5173,https://localhost,https://localhost:5173'
54
+ - name: SECRET_KEY
55
+ valueFrom:
56
+ secretKeyRef:
57
+ name: fastapi-backend-config-secret
58
+ key: SECRET_KEY
59
+ - name: FIRST_SUPERUSER
60
+ valueFrom:
61
+ secretKeyRef:
62
+ name: fastapi-backend-config-secret
63
+ key: FIRST_SUPERUSER
64
+ - name: FIRST_SUPERUSER_PASSWORD
65
+ valueFrom:
66
+ secretKeyRef:
67
+ name: fastapi-backend-config-secret
68
+ key: FIRST_SUPERUSER_PASSWORD
69
+ - name: USERS_OPEN_REGISTRATION
70
+ value: 'True'
71
+
72
+ # - name: SMTP_HOST
73
+ # valueFrom:
74
+ # secretKeyRef:
75
+ # name: fastapi-backend-config-secret
76
+ # key: SMTP_HOST
77
+ # - name: SMTP_USER
78
+ # valueFrom:
79
+ # secretKeyRef:
80
+ # name: fastapi-backend-config-secret
81
+ # key: SMTP_USER
82
+ # - name: SMTP_PASSWORD
83
+ # valueFrom:
84
+ # secretKeyRef:
85
+ # name: fastapi-backend-config-secret
86
+ # key: SMTP_PASSWORD
87
+ - name: EMAILS_FROM_EMAIL
88
+ value: 'info@example.com'
89
+ - name: SMTP_TLS
90
+ value: 'True'
91
+ - name: SMTP_SSL
92
+ value: 'False'
93
+ - name: SMTP_PORT
94
+ value: '587'
95
+
96
+ livenessProbe:
97
+ httpGet:
98
+ path: /docs
99
+ port: 8000
100
+ initialDelaySeconds: 30
101
+ periodSeconds: 20
102
+ timeoutSeconds: 10
103
+ failureThreshold: 3
104
+
105
+ readinessProbe:
106
+ httpGet:
107
+ path: /docs
108
+ port: 8000
109
+ initialDelaySeconds: 30
110
+ periodSeconds: 20
111
+ timeoutSeconds: 10
112
+ failureThreshold: 3
113
+
114
+ resources:
115
+ requests:
116
+ cpu: 200m
117
+ memory: 256Mi
118
+ limits:
119
+ cpu: 1000m
120
+ memory: 1Gi
@@ -0,0 +1,19 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: fastapi-backend-service
5
+ labels:
6
+ app: fastapi-backend
7
+ spec:
8
+ selector:
9
+ app: fastapi-backend
10
+ ports:
11
+ - name: 'tcp-8000'
12
+ protocol: TCP
13
+ port: 8000
14
+ targetPort: 8000
15
+ - name: 'udp-8000'
16
+ protocol: UDP
17
+ port: 8000
18
+ targetPort: 8000
19
+ type: ClusterIP
@@ -0,0 +1,54 @@
1
+ apiVersion: apps/v1
2
+ kind: Deployment
3
+ metadata:
4
+ name: react-frontend
5
+ labels:
6
+ app: react-frontend
7
+ spec:
8
+ replicas: 2
9
+ selector:
10
+ matchLabels:
11
+ app: react-frontend
12
+ template:
13
+ metadata:
14
+ labels:
15
+ app: react-frontend
16
+ spec:
17
+ containers:
18
+ - name: react-frontend-container
19
+ image: localhost/fastapi-frontend:latest
20
+ imagePullPolicy: IfNotPresent
21
+
22
+ ports:
23
+ - containerPort: 80
24
+ name: http-web
25
+
26
+ env:
27
+ - name: VITE_FASTAPI_URL
28
+ value: '/api'
29
+
30
+ livenessProbe:
31
+ httpGet:
32
+ path: /
33
+ port: 80
34
+ initialDelaySeconds: 5
35
+ periodSeconds: 10
36
+ timeoutSeconds: 3
37
+ failureThreshold: 3
38
+
39
+ readinessProbe:
40
+ httpGet:
41
+ path: /
42
+ port: 80
43
+ initialDelaySeconds: 3
44
+ periodSeconds: 5
45
+ timeoutSeconds: 3
46
+ failureThreshold: 3
47
+
48
+ resources:
49
+ requests:
50
+ cpu: 100m
51
+ memory: 128Mi
52
+ limits:
53
+ cpu: 500m
54
+ memory: 512Mi
@@ -0,0 +1,15 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ name: react-frontend-service
5
+ labels:
6
+ app: react-frontend
7
+ spec:
8
+ selector:
9
+ app: react-frontend
10
+ ports:
11
+ - protocol: TCP
12
+ port: 80
13
+ targetPort: 80
14
+ name: http-web
15
+ type: ClusterIP
@@ -0,0 +1,56 @@
1
+ #!/bin/bash
2
+
3
+ # IMPORTANT: For non-interactive scripts, 'conda activate' can be problematic
4
+ # because it relies on the shell's initialization.
5
+ # A more robust and recommended way to run commands within a Conda environment
6
+ # from a script is to use 'conda run'. This command directly executes a process
7
+ # in the specified environment without needing to manually source 'conda.sh'.
8
+
9
+ # Navigate to the application's root directory for module discovery.
10
+ # This is crucial for Python to correctly find your 'app' module using 'python -m'.
11
+ #
12
+ # Let's assume a common project structure:
13
+ # full-stack-fastapi-template/
14
+ # ├── backend/
15
+ # │ ├── app/
16
+ # │ │ └── initial_data.py (the Python script you want to run)
17
+ # │ └── initial_data.sh (this shell script)
18
+ # └── ...
19
+ #
20
+ # If `initial_data.sh` is located in `full-stack-fastapi-template/backend/`,
21
+ # and `app` is a subdirectory of `backend/`, then the Python command
22
+ # `python -m app.initial_data` needs to be executed from the `backend/` directory.
23
+ #
24
+ # If you are running this shell script from a different directory (e.g., `engine/`),
25
+ # Python's module import system won't automatically find 'app' unless the parent
26
+ # directory of 'app' is in the `PYTHONPATH` or you change the current working directory.
27
+ #
28
+ # The safest way is to change the current working directory to the script's location.
29
+
30
+ # Store the current directory to return to it later if needed (good practice for multi-step scripts).
31
+ CURRENT_DIR=$(pwd)
32
+
33
+ # Get the absolute path of the directory where this script is located.
34
+ # This is a robust way to ensure we always navigate to the correct 'backend' directory.
35
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
36
+ cd "$SCRIPT_DIR"
37
+
38
+ # Execute your Python script within the specified Conda environment using 'conda run'.
39
+ # -n fastapi_env specifies the Conda environment to use.
40
+ # This completely avoids the 'source conda.sh' issue and is generally more reliable.
41
+ conda run -n fastapi_env python -m app.initial_data
42
+
43
+ # Important Note: The 'ModuleNotFoundError: No module named 'sqlmodel'' indicates that
44
+ # the 'sqlmodel' package is not installed in your 'fastapi_env' Conda environment.
45
+ # After running this script, if you still get the 'sqlmodel' error,
46
+ # you will need to activate your environment manually and install it:
47
+ #
48
+ # conda activate fastapi_env
49
+ # pip install sqlmodel
50
+ # # or if it's a conda package:
51
+ # # conda install sqlmodel
52
+ #
53
+ # Then try running this script again.
54
+
55
+ # Optional Good Practice: Return to the original directory if the script is part of a larger workflow.
56
+ cd "$CURRENT_DIR"
@@ -0,0 +1,69 @@
1
+ apiVersion: apps/v1
2
+ kind: StatefulSet
3
+ metadata:
4
+ name: kafka
5
+ namespace: kafka
6
+ labels:
7
+ app: kafka-app
8
+ spec:
9
+ serviceName: kafka-svc
10
+ replicas: 3
11
+ selector:
12
+ matchLabels:
13
+ app: kafka-app
14
+ template:
15
+ metadata:
16
+ labels:
17
+ app: kafka-app
18
+ spec:
19
+ containers:
20
+ - name: kafka-container
21
+ image: doughgle/kafka-kraft
22
+ ports:
23
+ - containerPort: 9092
24
+ - containerPort: 9093
25
+ env:
26
+ - name: REPLICAS
27
+ value: '3'
28
+ - name: SERVICE
29
+ value: kafka-svc
30
+ - name: NAMESPACE
31
+ value: kafka
32
+ - name: SHARE_DIR
33
+ value: /mnt/kafka
34
+ - name: CLUSTER_ID
35
+ value: bXktY2x1c3Rlci0xMjM0NQ==
36
+ - name: DEFAULT_REPLICATION_FACTOR
37
+ value: '3'
38
+ - name: DEFAULT_MIN_INSYNC_REPLICAS
39
+ value: '2'
40
+ volumeMounts:
41
+ - name: data
42
+ mountPath: /mnt/kafka
43
+ volumeClaimTemplates:
44
+ - metadata:
45
+ name: data
46
+ spec:
47
+ accessModes:
48
+ - 'ReadWriteOnce'
49
+ resources:
50
+ requests:
51
+ storage: '1Gi'
52
+ ---
53
+ apiVersion: v1
54
+ kind: Service
55
+ metadata:
56
+ name: kafka-svc
57
+ namespace: kafka
58
+ labels:
59
+ app: kafka-app
60
+ spec:
61
+ type: NodePort
62
+ ports:
63
+ - name: '9092'
64
+ port: 9092
65
+ protocol: TCP
66
+ targetPort: 9092
67
+ nodePort: 30092
68
+ selector:
69
+ app: kafka-app
@@ -0,0 +1,21 @@
1
+ apiVersion: sparkoperator.k8s.io/v1beta2
2
+ kind: SparkApplication
3
+ metadata:
4
+ name: spark-pi-python
5
+ namespace: default
6
+ spec:
7
+ type: Python
8
+ pythonVersion: '3'
9
+ mode: cluster
10
+ image: spark:3.5.5
11
+ imagePullPolicy: IfNotPresent
12
+ mainApplicationFile: local:///opt/spark/examples/src/main/python/pi.py
13
+ sparkVersion: 3.5.5
14
+ driver:
15
+ cores: 1
16
+ memory: 512m
17
+ serviceAccount: spark-operator-spark
18
+ executor:
19
+ instances: 1
20
+ cores: 1
21
+ memory: 512m
@@ -0,0 +1,23 @@
1
+ apiVersion: v1
2
+ kind: Service
3
+ metadata:
4
+ labels:
5
+ app: envoy
6
+ name: envoy
7
+ namespace: projectcontour
8
+ spec:
9
+ externalTrafficPolicy: Cluster
10
+ ports:
11
+ - name: http
12
+ nodePort: 30080
13
+ port: 80
14
+ protocol: TCP
15
+ targetPort: 8080
16
+ - name: https
17
+ nodePort: 30443
18
+ port: 443
19
+ protocol: TCP
20
+ targetPort: 8443
21
+ selector:
22
+ app: envoy
23
+ type: NodePort