Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
226 commits
Select commit Hold shift + click to select a range
ff83a10
Null check on crd object list in mutating webhook delete
devdattakulkarni Dec 18, 2023
bcd1fbc
Removing previous chart if one exists (helmer and kubeconfiggenerator)
devdattakulkarni Dec 18, 2023
1e52294
README and examples updates to use KubePlus 3.0.31
devdattakulkarni Dec 18, 2023
3bcf670
Plugins update
devdattakulkarni Dec 18, 2023
87afcc1
Added utility to parse API server URL of the current context
devdattakulkarni Dec 21, 2023
f4ac45d
For metrics and logs using Pods within the NS of the instance
devdattakulkarni Dec 30, 2023
49d68ad
Merging kubeplus-kubectl-plugins.tar.gz from master branch
devdattakulkarni Dec 30, 2023
d36b7f0
Adding a label to identify CRDs registered by KubePlus
devdattakulkarni Jan 7, 2024
ea2f55b
KubePlus chart - 3.0.32
devdattakulkarni Jan 7, 2024
42722a7
Application upgrade improvements
devdattakulkarni Jan 10, 2024
3ee39d0
KubePlus chart - 3.0.33
devdattakulkarni Jan 10, 2024
2c293f1
Examples and README updates to use KubePlus chart - 3.0.33
devdattakulkarni Jan 10, 2024
b5f3c50
Service CRD name check
devdattakulkarni Feb 7, 2024
0dda834
KubePlus chart update - 3.0.34
devdattakulkarni Feb 7, 2024
5b16f8b
Merge branch 'master' into develop
devdattakulkarni Feb 7, 2024
df33fd1
Resourcecomposition upgrade update
devdattakulkarni Feb 16, 2024
75c946b
KubePlus chart - 3.0.35
devdattakulkarni Feb 16, 2024
7b63caa
Merge branch 'master' into develop
devdattakulkarni Feb 16, 2024
e68b41c
Merge branch 'master' into develop
devdattakulkarni Feb 16, 2024
fd82ecc
Examples and README updated to refer to 3.0.35 chart
devdattakulkarni Feb 16, 2024
e48af2e
Update to parse-api-server-url.sh
devdattakulkarni Feb 16, 2024
5b37719
Merge branch 'master' into develop
devdattakulkarni Feb 16, 2024
5612568
Merge branch 'master' of https://github.com/cloud-ark/kubeplus into d…
devdattakulkarni Apr 7, 2024
10b29e1
README updates
devdattakulkarni Apr 7, 2024
a2aebd7
Added slack channel on CNCF workspace
devdattakulkarni Apr 12, 2024
9ea2f19
KubePlus control center script removal
devdattakulkarni Apr 17, 2024
2193c12
Contributing doc updates
devdattakulkarni Apr 17, 2024
056fc08
README updates
devdattakulkarni Apr 17, 2024
a52b7b1
Merge branch 'master' into develop
devdattakulkarni Apr 17, 2024
1f138ed
Merge branch 'master' into develop
devdattakulkarni Apr 18, 2024
20ae0db
Wordpress example steps update
devdattakulkarni Apr 18, 2024
a18bad3
Merge branch 'master' into develop
devdattakulkarni Apr 25, 2024
086899c
Test suite update
devdattakulkarni Apr 25, 2024
1c9f87a
Tests update
devdattakulkarni Apr 25, 2024
74487fc
Merge branch 'master' into develop
devdattakulkarni Apr 26, 2024
5ae6bf0
Added README in tests folder
devdattakulkarni Apr 26, 2024
f9f9ca4
Merge branch 'master' into develop
devdattakulkarni Apr 26, 2024
b2c3510
KubePlus Helm chart update - 3.0.36
devdattakulkarni Apr 26, 2024
373b29c
Merge branch 'master' into develop
devdattakulkarni Apr 28, 2024
c9adc75
Updated command-line flag help messages in provider kubeconfiggenerator
devdattakulkarni Apr 28, 2024
e1fe830
Tests update
devdattakulkarni Apr 28, 2024
26cc793
Merge branch 'master' into develop
devdattakulkarni Apr 29, 2024
0ce98ec
Modified provider-kubeconfig.py to extract kubeconfig from a cluster
devdattakulkarni Apr 7, 2024
116e8d7
provider-kubeconfig.py cleanup
devdattakulkarni Apr 29, 2024
b55c41d
Merge branch 'master' into develop
devdattakulkarni Apr 29, 2024
c29f03e
Merge branch 'master' into develop
devdattakulkarni Apr 30, 2024
8e7ba93
Updated Contributing guidelines
devdattakulkarni Apr 30, 2024
800903f
Merge branch 'master' into develop
devdattakulkarni Apr 30, 2024
0e13271
hello-world example update
devdattakulkarni Apr 30, 2024
3084fe8
wordpress example update
devdattakulkarni Apr 30, 2024
67ddf3a
Merge branch 'master' into develop
devdattakulkarni Apr 30, 2024
a822683
Documentation updates
devdattakulkarni May 1, 2024
7b1ea4d
Merge branch 'master' into develop
devdattakulkarni May 1, 2024
1623dae
README updates
devdattakulkarni May 1, 2024
c6f195c
Merge branch 'master' into develop
devdattakulkarni May 1, 2024
1ca86a8
Consumer UI updates
devdattakulkarni May 4, 2024
7b7a19b
Merge branch 'master' into develop
devdattakulkarni May 4, 2024
a7cd13a
KubePlus chart update - 3.0.37
devdattakulkarni May 4, 2024
e22b0a5
Link to Slack invitation and includes missing updates to Chart.yaml
devdattakulkarni May 6, 2024
d1e8a00
Merge branch 'master' into develop
devdattakulkarni May 6, 2024
e86b689
Application upgrade
devdattakulkarni May 8, 2024
ff5db0c
Merge branch 'master' into develop
devdattakulkarni May 8, 2024
a602470
KubePlus chart - 3.0.38
devdattakulkarni May 8, 2024
e90d28f
Merge branch 'master' into develop
devdattakulkarni May 8, 2024
6a7d383
Merge branch 'master' into develop
devdattakulkarni May 8, 2024
0d26fb0
Added Use cases
devdattakulkarni May 8, 2024
a124418
Merge branch 'master' into develop
devdattakulkarni May 8, 2024
74d6767
Use cases - correct links
devdattakulkarni May 8, 2024
186da0b
Merge branch 'master' into develop
devdattakulkarni May 9, 2024
ed510d8
README updated
devdattakulkarni May 9, 2024
cf2e0dc
Merge branch 'master' into develop
devdattakulkarni May 9, 2024
47d084a
Examples - cleanup
devdattakulkarni May 10, 2024
0b2b896
Merge branch 'master' into develop
devdattakulkarni May 10, 2024
8ffb393
Docs cleanup
devdattakulkarni May 10, 2024
93e8eb5
mutating-webhook - folder cleanup
devdattakulkarni May 10, 2024
c192a2c
Merge branch 'master' into develop
devdattakulkarni May 10, 2024
9243351
platform-operator cleanup
devdattakulkarni May 10, 2024
5099a47
Merge branch 'master' into develop
devdattakulkarni May 10, 2024
57fac82
plugins folder cleanup
devdattakulkarni May 10, 2024
0e41c1a
Merge branch 'master' into develop
devdattakulkarni May 10, 2024
52626c0
More cleanup
devdattakulkarni May 10, 2024
e42a952
Merge branch 'master' into develop
devdattakulkarni May 10, 2024
14d5e9f
Cleanup ++
devdattakulkarni May 10, 2024
56e5b86
Dockerfile updates to download kubectl and helm binaries
devdattakulkarni May 11, 2024
49b4d8e
KubePlus chart - 3.0.39
devdattakulkarni May 11, 2024
007654e
Merge branch 'master' into develop
devdattakulkarni May 11, 2024
07f4eda
Added link to KubePlus mailing list
devdattakulkarni May 14, 2024
1685579
Merge branch 'master' into develop
devdattakulkarni May 16, 2024
dd0ec71
README updates
devdattakulkarni May 16, 2024
13fdc8e
README update
devdattakulkarni May 31, 2024
753bdf2
Merge branch 'master' into develop
devdattakulkarni Jun 3, 2024
9053ff7
GitHub Actions
devdattakulkarni Jun 3, 2024
03d789b
Github actions - take 2
devdattakulkarni Jun 3, 2024
c2c7506
Github actions - take 4
devdattakulkarni Jun 3, 2024
94b44ba
Github actions - take 5
devdattakulkarni Jun 3, 2024
1bc0b62
Github actions - take 6
devdattakulkarni Jun 3, 2024
3d7e0e9
Github actions - take 7
devdattakulkarni Jun 3, 2024
df0b3c7
Github actions - trial 8
devdattakulkarni Jun 3, 2024
dee417f
Github actions - trial 9
devdattakulkarni Jun 3, 2024
b69a489
Github actions - trial 10
devdattakulkarni Jun 3, 2024
181688e
README update
devdattakulkarni Jun 3, 2024
35ef449
Merge branch 'master' into develop
devdattakulkarni Jun 4, 2024
1952e6f
Github actions update - running tests
devdattakulkarni Jun 4, 2024
7c3e246
Github actions - enabling detailed logs
devdattakulkarni Jun 4, 2024
af80362
Github action - Added sleep and enabling test output
devdattakulkarni Jun 4, 2024
b9a027b
Tests update
devdattakulkarni Jun 4, 2024
ce04dd5
Tests update
devdattakulkarni Jun 4, 2024
c60a03e
Github action - running tests
devdattakulkarni Jun 4, 2024
0beca73
Github action update - installing KubePlus chart from deploy dir
devdattakulkarni Jun 4, 2024
f81c66a
Github action update - installing KubePlus chart from deploy dir
devdattakulkarni Jun 4, 2024
f0c326c
Merge branch 'master' into develop
devdattakulkarni Jun 4, 2024
8b39592
Merge branch 'develop' of github.com:cloud-ark/kubeplus into develop
devdattakulkarni Jun 4, 2024
9d75c5b
Updates to helmer and tests
devdattakulkarni Jun 5, 2024
782fff0
KubePlus chart - 3.0.40
devdattakulkarni Jun 5, 2024
6493a81
Support for application force delete
devdattakulkarni Jun 6, 2024
2cf8401
Merge branch 'master' into develop
devdattakulkarni Jun 6, 2024
d474c4a
KubePlus chart update - 3.0.41
devdattakulkarni Jun 6, 2024
ae89314
Merge branch 'master' into develop
devdattakulkarni Jun 10, 2024
48a7897
README update - Referencing GitHub pages site
devdattakulkarni Jun 10, 2024
680538a
Updating import
devdattakulkarni Jun 11, 2024
85f3021
Merge branch 'master' into develop
devdattakulkarni Jun 11, 2024
0c60975
GitHub Action update
devdattakulkarni Jun 11, 2024
9be6cb7
GitHub action update
devdattakulkarni Jun 11, 2024
14c565d
GitHub action update
devdattakulkarni Jun 11, 2024
6d0717c
GitHub action update - take 4
devdattakulkarni Jun 11, 2024
27fd4c2
GitHub action update - take 5
devdattakulkarni Jun 11, 2024
e5f60ba
GitHub action update - take 6
devdattakulkarni Jun 12, 2024
d798544
GitHub action update - take 7
devdattakulkarni Jun 12, 2024
009001c
GitHub action update - take 8
devdattakulkarni Jun 12, 2024
ad4a657
GitHub action update - take 9
devdattakulkarni Jun 12, 2024
bde3617
GitHub action update - take 10
devdattakulkarni Jun 12, 2024
c4dfabf
GitHub action update - take 11
devdattakulkarni Jun 12, 2024
b07fd98
GitHub action update - take 12
devdattakulkarni Jun 12, 2024
156f16f
GitHub action update - take 13
devdattakulkarni Jun 12, 2024
bd4dc71
GitHub action update - take 14
devdattakulkarni Jun 12, 2024
7b8467f
Merge branch 'master' into develop
devdattakulkarni Jun 12, 2024
88cebd5
platform-operator updates
devdattakulkarni Jun 12, 2024
445ca2c
KubePlus chart - 3.0.42
devdattakulkarni Jun 12, 2024
5e138c7
Merge branch 'master' into develop
devdattakulkarni Jun 12, 2024
f08e7f8
Removing kubediscovery as submodule
devdattakulkarni Jun 12, 2024
87ca40b
Merge branch 'master' into develop
devdattakulkarni Jun 12, 2024
bdec5a8
Merge branch 'master' into develop
devdattakulkarni Jun 13, 2024
ac5606b
Added ephemeral-storage request to component containers
devdattakulkarni Jun 13, 2024
ffcb794
Merge branch 'master' into develop
devdattakulkarni Jun 16, 2024
3cfef41
Day2 operation example update
devdattakulkarni Jun 16, 2024
c222e72
Example updates
devdattakulkarni Jun 19, 2024
b5c485b
Examples update - cleanup
devdattakulkarni Jun 19, 2024
20b234d
Merge branch 'master' into develop
devdattakulkarni Jun 19, 2024
56bf569
Merge branch 'master' into develop
devdattakulkarni Jun 22, 2024
af51633
KubePlus chart update - version 3.0.44
devdattakulkarni Jun 22, 2024
65bdcfe
Merge branch 'master' into develop
devdattakulkarni Jul 25, 2024
66578a1
Ignoring Succeeded Pods when calculating num_of_not_running pods
devdattakulkarni Jul 25, 2024
8d858ca
Rejecting cr instance creation if previous NS is in Terminating state
devdattakulkarni Jul 25, 2024
71408e2
Merge branch 'master' into develop
devdattakulkarni Jul 25, 2024
15f457c
AdmissionResponse cannot be empty string
devdattakulkarni Jul 25, 2024
71d7f6d
Correctly checking if previous NS not in Terminating state
devdattakulkarni Jul 26, 2024
1039bc2
Merge branch 'master' into develop
devdattakulkarni Jul 26, 2024
fce2971
Merge branch 'master' into develop
devdattakulkarni Jul 26, 2024
55a2165
KubePlus chart - 3.0.45
devdattakulkarni Jul 26, 2024
3f9d5cb
WIP: Licensing support
devdattakulkarni Aug 2, 2024
dbd5e8f
Merge branch 'master' into develop
devdattakulkarni Aug 2, 2024
e41ec1b
License support - tests
devdattakulkarni Aug 3, 2024
6c4f032
License support - GH action typo fix
devdattakulkarni Aug 3, 2024
432f2de
License support - Test cleanup and README update
devdattakulkarni Aug 3, 2024
18f016a
License support - tests and README update
devdattakulkarni Aug 3, 2024
a5e62f8
License support - review feedback update
devdattakulkarni Aug 3, 2024
0d119a9
Merge branch 'master' into develop
devdattakulkarni Aug 3, 2024
a56456b
KubePlus chart - 3.0.46
devdattakulkarni Aug 3, 2024
f2719af
Merge branch 'master' into develop
devdattakulkarni Aug 6, 2024
9f238a8
Example update - hello-world
devdattakulkarni Aug 6, 2024
74be66b
Merge branch 'master' into develop
devdattakulkarni Aug 6, 2024
a133e94
Ensuring that app status field is correctly updated on app update
devdattakulkarni Aug 7, 2024
4f2cbe0
Ensuring app status field is correctly updated on status update
devdattakulkarni Aug 8, 2024
7549718
KubePlus chart - 3.0.47
devdattakulkarni Aug 8, 2024
a526c35
Merge branch 'master' into develop
devdattakulkarni Aug 9, 2024
edbb76e
Updating cleanup Job
devdattakulkarni Aug 9, 2024
e9efee8
Updating delete kubeplus components script
devdattakulkarni Aug 9, 2024
10c2c4d
KubePlus chart - 4.0.0
devdattakulkarni Aug 9, 2024
d1ee14a
Merge branch 'master' into develop
devdattakulkarni Oct 25, 2024
0fb031b
README updates
devdattakulkarni Oct 25, 2024
23f9850
Updating GH action
devdattakulkarni Oct 25, 2024
755704b
Skipping test_application_upgrade from CI run
devdattakulkarni Oct 25, 2024
beacded
Adding detailed (describe) output to spot check
devdattakulkarni Oct 25, 2024
36fb02e
Tests update - Printing out of 'kubectl appstatus' instead of asserts
devdattakulkarni Oct 25, 2024
2dd75d7
Merge branch 'master' into develop
devdattakulkarni Nov 13, 2024
8624e43
Mutating webhook updates
devdattakulkarni Nov 14, 2024
66208d2
README and Docs update to refer to 4.0.1 chart
devdattakulkarni Nov 14, 2024
442e96a
Updates to GH action
devdattakulkarni Nov 14, 2024
a45c177
Merge branch 'master' into develop
devdattakulkarni Nov 20, 2024
230ee68
Updates to provider-kubeconfig.py to generate consumer kubeconfig
devdattakulkarni Nov 21, 2024
835a768
Merge branch 'master' into develop
devdattakulkarni Dec 2, 2024
e7999ff
Merge branch 'master' into develop
devdattakulkarni Jan 14, 2025
8c326de
Adding request limits to ephemeral-storage
devdattakulkarni Jan 14, 2025
0f4bbd4
KubePlus chart - 4.0.2
devdattakulkarni Jan 14, 2025
e02fe35
Merge branch 'master' into develop
devdattakulkarni Jan 14, 2025
acd9576
Merge branch 'master' into develop
devdattakulkarni Jan 21, 2025
84f7c0c
Mutating webhook update
devdattakulkarni Jan 22, 2025
781da1c
KubePlus chart - 4.0.3
devdattakulkarni Jan 22, 2025
fe42042
KubePlus chart update - 4.0.4
devdattakulkarni Jan 31, 2025
d4c9222
Merge branch 'master' into develop
devdattakulkarni Jan 31, 2025
38b2f7d
Merge branch 'master' into develop
devdattakulkarni Jan 31, 2025
87c1553
Updating the resources intercepted in MutatingWebhookConfiguration
devdattakulkarni Jan 31, 2025
bf46f19
KubePlus chart update - 4.1.0
devdattakulkarni Jan 31, 2025
ad30e6b
Merge branch 'master' into develop
devdattakulkarni Feb 21, 2025
03971e5
Consumer ui - new image
devdattakulkarni Feb 21, 2025
b42d606
Merge branch 'master' into develop
devdattakulkarni Feb 21, 2025
94b2d0b
Application migration between Kinds
devdattakulkarni Feb 23, 2025
ba54501
KubePlus chart - 4.1.2
devdattakulkarni Feb 23, 2025
77e8ee2
Merge branch 'master' into develop
devdattakulkarni Feb 23, 2025
ba85870
Hello world example updates
devdattakulkarni Feb 24, 2025
b29bdfe
Merge branch 'master' into develop
devdattakulkarni Mar 4, 2025
1853c8f
GitHub action updated
devdattakulkarni Mar 4, 2025
0858ab5
GH action update
devdattakulkarni Mar 4, 2025
8b26b34
GH action update
devdattakulkarni Mar 4, 2025
4314a87
GitHub action updated
devdattakulkarni Mar 4, 2025
4d2acb3
Dockerfiles update
devdattakulkarni Mar 4, 2025
c7ecd5f
GitHub action update
devdattakulkarni Mar 4, 2025
e63179c
GH action updates cont.
devdattakulkarni Mar 4, 2025
410fac0
Merge branch 'master' into develop
devdattakulkarni Mar 4, 2025
6970aed
Updating component versions which had to be built with new Ubuntu base
devdattakulkarni Mar 9, 2025
dc94624
Merge branch 'master' into develop
devdattakulkarni Mar 9, 2025
387a38f
Merge branch 'master' into develop
devdattakulkarni Mar 9, 2025
4865996
KubePlus chart - 4.1.3
devdattakulkarni Mar 9, 2025
d80eba6
Metrics plugin update
devdattakulkarni Mar 9, 2025
b702da8
Merge branch 'master' into develop
devdattakulkarni Mar 11, 2025
e7ea3e8
kubectl metrics plugin update
devdattakulkarni Mar 11, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pr-minikube.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ jobs:
kubectl describe resourcecomposition wordpress-service-composition
until kubectl get pods -n wp-tenant1 | grep -e Running -e Pending; do kubectl describe pods -n wp-tenant1; echo "Waiting for Application Pods to start.."; sleep 1; done
kubectl appresources WordpressService wp-tenant1 –k kubeplus-saas-provider.json
kubectl metrics WordpressService wp-tenant1 $KUBEPLUS_NS -k kubeplus-saas-provider.json
kubectl metrics WordpressService wp-tenant1 -k kubeplus-saas-provider.json
kubectl delete wordpressservice wp-tenant1 --kubeconfig=kubeplus-saas-provider.json
kubectl delete resourcecomposition wordpress-service-composition --kubeconfig=kubeplus-saas-provider.json
echo "Running tests..starting in 5 seconds"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ jobs:
- name: Interact with Deployed Application
run: |
kubectl appresources WordpressService wp-tenant1 –k kubeplus-saas-provider.json
kubectl metrics WordpressService wp-tenant1 $KUBEPLUS_NS -k kubeplus-saas-provider.json
kubectl metrics WordpressService wp-tenant1 -k kubeplus-saas-provider.json
- name: Cleanup Deployed Resources
run: |
Expand Down
2 changes: 1 addition & 1 deletion examples/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ wp-tenant1 ResourceQuota wordpressservice-wp-tenant1
### 7. Check Application Resource Consumption

```sh
kubectl metrics WordpressService wp-tenant1 $KUBEPLUS_NS -k kubeplus-saas-provider.json
kubectl metrics WordpressService wp-tenant1 -k kubeplus-saas-provider.json

----------------------------------------------------------
Kubernetes Resources created:
Expand Down
4 changes: 2 additions & 2 deletions examples/multitenancy/application-hosting/odoo/steps.txt
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@ This example shows delivering Bitnami Odoo Helm chart as-a-service using KubePlu
- Navigate to $appurl/web/login in the browser and login using ODOO_EMAIL and ODOO_PASSWORD

13. Check metrics:
$ kubectl metrics OdooService sample-odooservice default -k kubeplus-saas-provider.json
$ kubectl metrics OdooService sample-odooservice default -k kubeplus-saas-provider.json -o prometheus
$ kubectl metrics OdooService sample-odooservice -k kubeplus-saas-provider.json
$ kubectl metrics OdooService sample-odooservice -k kubeplus-saas-provider.json -o prometheus

14. Check resource topology:
$ kubectl connections OdooService sample-odooservice default -k kubeplus-saas-provider.json
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ $ kubectl kubeplus commands
- should see logs for all the containers in both the Pods

14. Get metrics:
$ kubectl metrics WordpressService wp-tenant1 $KUBEPLUS_NS -k kubeplus-saas-provider.json
$ kubectl metrics WordpressService wp-tenant1 -k kubeplus-saas-provider.json

15. Visualize topology:
$ kubectl connections WordpressService wp-tenant1 $KUBEPLUS_NS -o png -k kubeplus-saas-provider.json
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Multi-namespace setup
- Should see app logs
21. kubectl connections HelloWorldService hs1 default -i Namespace:$KUBEPLUS_NS -k consumer.conf
- Should see created resources' listing
22. kubectl metrics HelloWorldService hs1 default -o prometheus -k consumer.conf
22. kubectl metrics HelloWorldService hs1 -o prometheus -k consumer.conf
- Should see the metrics
23. kubectl delete -f hs1.yaml --kubeconfig=consumer.conf
- kubectl get pods -A
Expand Down Expand Up @@ -110,7 +110,7 @@ Single namespace setup
- Should see app logs
20. kubectl connections HelloWorldService hs1 kubeplus -i Namespace:$KUBEPLUS_NS -k provider.conf
- Should see created resources' listing
21. kubectl metrics HelloWorldService hs1 kubeplus -o prometheus -k provider.conf
21. kubectl metrics HelloWorldService hs1 -o prometheus -k provider.conf
- Should see the metrics
22. kubectl delete -f hs1.yaml --kubeconfig=provider.conf
23. kubectl get pods -A
Expand Down
4 changes: 2 additions & 2 deletions examples/multitenancy/hello-world/steps.txt
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ You can use either the provider.conf or consumer.conf in below commands.
- kubectl applogs HelloWorldService hs1 default -k consumer.conf

7. Retrievel application metrics
- kubectl metrics HelloWorldService hs1 default -k consumer.conf
- kubectl metrics HelloWorldService hs1 -k consumer.conf
- Should see output of the following nature:
----------------------------------------------------------
Kubernetes Resources created:
Expand All @@ -113,7 +113,7 @@ You can use either the provider.conf or consumer.conf in below commands.
9. Verify that 2 Pods are created in the hs1 namespace
- kubectl get pods -n hs1
- kubectl appresources HelloWorldService hs1 default -k consumer.conf
- kubectl metrics HelloWorldService hs1 default -k consumer.conf
- kubectl metrics HelloWorldService hs1 -k consumer.conf


Clean up:
Expand Down
4 changes: 2 additions & 2 deletions examples/multitenancy/platform-engineering/steps.txt
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ Product team
$ kubectl applogs CustomMysqlService prod-mysql default -k consumer.conf

7. Check metrics:
$ kubectl metrics CustomMysqlService prod-mysql default -k consumer.conf
$ kubectl metrics CustomMysqlService prod-mysql default -k consumer.conf -o prometheus
$ kubectl metrics CustomMysqlService prod-mysql -k consumer.conf
$ kubectl metrics CustomMysqlService prod-mysql -k consumer.conf -o prometheus


Clean up:
Expand Down
273 changes: 11 additions & 262 deletions plugins/crmetrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -759,65 +759,6 @@ def _parse_pods_from_connections_op(self, output):
pod_list.append(pod)
return pod_list

def _get_pods_for_helmrelease_2(self, release_name):
cmd = "helm get " + release_name
try:
output = subprocess.Popen(cmd,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True).communicate()[0]
output = output.decode('utf-8')
output = output.strip("\n")
except Exception as e:
print(e)

pod_list_to_return = []

output1 = output.decode("utf-8")
#print(output1)
processed_output = []
start = False
for line in output1.split("\n"):
if not start and line == "---":
start = True
if start:
processed_output.append(line)
processed_output.append("\n")

#print("CBC")
#print(processed_output)
yamls = ''.join(processed_output)
#print("DEF")
#print(yamls)
yamls_bytes = yamls.encode()
#print("EFG")
#print(yamls_bytes)

for project in yaml.load_all(yamls_bytes):
#pprint.pprint(project)
if project != None:
kind = project['kind']
name = ''
namespace = 'default'
if 'metadata' in project:
if 'name' in project['metadata']:
name = project['metadata']['name']
if 'namespace' in project['metadata']:
name = project['metadata']['namespace']

if kind not in ['ConfigMap', 'CustomResourceDefinition', 'ClusterRole', 'ClusterRoleBinding']:
if kind != '' and name != '' and namespace != '':
#print("Kind:"+ kind + " Namespace:" + namespace + " Instance:" + instance)
composition = self._get_composition(kind, name, namespace)
pod_list = self._parse_number_of_pods(composition)
if pod_list:
#print(pod_list)
for p in pod_list:
pod = {}
pod['Name'] = p['Name']
pod['Namespace'] = p['Namespace']
pod_list_to_return.append(pod)
return pod_list_to_return

def _get_pods_for_helmrelease(self, release_name):
cmd = "helm get manifest " + release_name
Expand Down Expand Up @@ -1053,82 +994,15 @@ def _get_metrics_creator_account_with_connections(self, account):
print(" Total Storage(bytes): " + str(storage) + "Gi")
print("---------------------------------------------------------- ")

def get_metrics_creator_account(self, account):
# 1. Get all custom resource instances - their count
all_cpu = 0
all_mem = 0

print("---------------------------------------------------------- ")
print(" Creator Account Identity: " + account)
print("---------------------------------------------------------- ")

print("Checking Custom Resources..")
cr_cpu, cr_mem, cr_count = self._get_metrics_cr_instances(account)

# 2. Get all deployments
print("Checking Deployments..")
dep_cpu, dep_mem, dep_count = self._get_metrics_deployments(account)

# 3. Get all statefulsets
print("Checking StatefulSets..")
ssets_cpu, ssets_mem, ss_count = self._get_metrics_statefulsets(account)

# 4. Get all replicasets -
# Replicasets seem to carry over annotations from deployment.
# So we will ignore the memory and cpu of deployments from final totals.
# To correctly count replicasets we will subtract dep_count from rsets_count
print("Checking ReplicaSets..")
rsets_cpu, rsets_mem, rsets_count = self._get_metrics_replicasets(account)
rsets_count = rsets_count - dep_count

# 5. Get all daemonsets
print("Checking DaemonSets..")
dsets_cpu, dsets_mem, dsets_count = self._get_metrics_daemonsets(account)

# 6. Get all replicationcontrollers
print("Checking ReplicationControllers..")
rcsets_cpu, rcsets_mem, rcsets_count = self._get_metrics_replicationcontrollers(account)

# 7. Get all pods
print("Checking Pods..")
p_cpu, p_mem, p_count = self._get_metrics_pods(account)

all_cpu = cr_cpu + ssets_cpu + rsets_cpu + dsets_cpu + rcsets_cpu + p_cpu
all_mem = cr_mem + ssets_mem + rsets_mem + dsets_mem + rcsets_mem + p_mem

print("Kubernetes Resources created:")
print(" Number of Custom Resources: " + str(cr_count))
print(" Number of Deployments: " + str(dep_count))
print(" Number of StatefulSets: " + str(ss_count))
print(" Number of ReplicaSets: " + str(rsets_count))
print(" Number of DaemonSets: " + str(dsets_count))
print(" Number of ReplicationControllers: " + str(rcsets_count))
print(" Number of Pods: " + str(p_count))
print("Underlying Physical Resoures consumed:")
print(" Total CPU(cores): " + str(all_cpu) + "m")
print(" Total MEMORY(bytes): " + str(all_mem) + "Mi")
print(" Total Storage(bytes): (Upcoming)")

def get_metrics_cr(self, custom_resource, custom_res_instance, namespace, follow_connections, opformat, kubeconfig):
def get_metrics_cr(self, custom_resource, custom_res_instance, opformat, kubeconfig):
namespace = self.get_kubeplus_namespace(kubeconfig)
accountidentity = self._get_identity(custom_resource, custom_res_instance, namespace)
accountidentity = ''
pod_list = []
if follow_connections == "false":
composition = self._get_composition(custom_resource, custom_res_instance, namespace)
num_of_resources = self._parse_number_of_resources(composition)
pod_list = self._parse_number_of_pods(composition)
if follow_connections == "true":
num_of_resources = "-"
conn_op_format = "json"
#pod_list = self._get_pods_for_cr_connections(custom_resource, custom_res_instance, namespace, kubeconfig, conn_op_format)
#pod_list = self.get_pods(custom_resource, custom_res_instance, kubeconfig) # uses label selectors
pod_list = self.get_pods_in_ns(custom_resource, custom_res_instance, kubeconfig) # queries Pods in the CR NS
if len(pod_list) == 0:
# uses kubectl connections plugin - slower than label selectors
pod_list = self._get_pods_for_cr_connections(custom_resource, custom_res_instance, namespace, kubeconfig, conn_op_format)

#cpu, memory = self._get_cpu_memory_usage(pod_list)
#print(pod_list)
num_of_resources = "-"
conn_op_format = "json"
pod_list = self.get_pods_in_ns(custom_resource, custom_res_instance, kubeconfig) # queries Pods in the CR NS

num_of_containers_conn = self._parse_number_of_containers(pod_list, kubecfg=kubeconfig)
total_storage_conn = self._parse_persistentvolumeclaims(pod_list, kubecfg=kubeconfig)
num_of_hosts_conn = self._parse_number_of_hosts(pod_list, kubecfg=kubeconfig)
Expand Down Expand Up @@ -1179,9 +1053,6 @@ def get_metrics_cr(self, custom_resource, custom_res_instance, namespace, follow
metricsToReturn = cpuMetrics + "\n" + memoryMetrics + "\n" + storageMetrics + "\n" + numOfPods + "\n" + numOfContainers + "\n" + networkReceiveBytes + "\n" + networkTransmitBytes + "\n" + numOfNotRunningPods + "\n" + oomEvents
print(metricsToReturn)
elif opformat == 'pretty':
#print("---------------------------------------------------------- ")
#print(" Creator Account Identity: " + accountidentity)
#print("---------------------------------------------------------- ")
print("---------------------------------------------------------- ")
print("Kubernetes Resources created:")
print(" Number of Sub-resources: " + str(num_of_resources))
Expand All @@ -1199,134 +1070,12 @@ def get_metrics_cr(self, custom_resource, custom_res_instance, namespace, follow
else:
print("Unknown output format specified. Accepted values: pretty, json, prometheus")

def get_metrics_service(self, service_name, namespace):
print("---------------------------------------------------------- ")
pod_list, res_list = self._get_pods_for_service(service_name, namespace)
#print(res_list)
print("Kubernetes Resources created:")
print(" Total Number of Resources: " + str(len(res_list)))
print(" Number of Pods: " + str(len(pod_list)))

num_of_containers = self._parse_number_of_containers(pod_list)
print(" Number of Containers: " + str(num_of_containers))

total_storage = self._parse_persistentvolumeclaims(pod_list)

num_of_hosts = self._parse_number_of_hosts(pod_list)
print(" Number of Nodes: " + str(num_of_hosts))

cpu, memory = self._get_cpu_memory_usage(pod_list)

print("Underlying Physical Resoures consumed:")
print(" Total CPU(cores): " + str(cpu) + "m")
print(" Total MEMORY(bytes): " + str(memory) + "Mi")
print(" Total Storage(bytes): " + str(total_storage) + "Gi")
print("---------------------------------------------------------- ")

def get_metrics_helmrelease(self, release_name):
pod_list = self._get_pods_for_helmrelease(release_name)

time1 = int(round(time.time() * 1000))
num_of_containers = self._parse_number_of_containers(pod_list)
time2 = int(round(time.time() * 1000))

#print(" time:" + str(time2-time1))

# TODO: What should be the namespace parameter for Helm releases?
# Currently setting to "default"
time1 = int(round(time.time() * 1000))
total_storage = self._parse_persistentvolumeclaims(pod_list)
time2 = int(round(time.time() * 1000))
#print(" pvc time:" + str(time2-time1))

time1 = int(round(time.time() * 1000))
num_of_hosts = self._parse_number_of_hosts(pod_list)
time2 = int(round(time.time() * 1000))
#print(" time:" + str(time2-time1))

cpu, memory = self._get_cpu_memory_usage(pod_list)

metrics_helm_release = {}
metrics_helm_release['num_of_pods'] = str(len(pod_list))
metrics_helm_release['num_of_containers'] = str(num_of_containers)
metrics_helm_release['num_of_hosts'] = str(num_of_hosts)
metrics_helm_release['cpu'] = str(cpu)
metrics_helm_release['memory'] = str(memory)
metrics_helm_release['storage'] = str(total_storage)
return metrics_helm_release

def print_metrics_helmrelease(self, metrics_helm_release):
num_of_pods = metrics_helm_release['num_of_pods']
num_of_containers = metrics_helm_release['num_of_containers']
num_of_hosts = metrics_helm_release['num_of_hosts']
cpu = metrics_helm_release['cpu']
memory = metrics_helm_release['memory']
total_storage = metrics_helm_release['storage']

print("---------------------------------------------------------- ")
print("Kubernetes Resources created:")
print(" Number of Pods: " + num_of_pods)
print(" Number of Containers: " + num_of_containers)
print(" Number of Nodes: " + num_of_hosts)
print("Underlying Physical Resoures consumed:")
print(" Total CPU(cores): " + str(cpu) + "m")
print(" Total MEMORY(bytes): " + str(memory) + "Mi")
print(" Total Storage(bytes): " + str(total_storage) + "Gi")
print("---------------------------------------------------------- ")

def prometheus_metrics_helmrelease(self, release_name, metrics_helm_release):
millis = int(round(time.time() * 1000))
metricsToReturn = ''
cpu = metrics_helm_release['cpu']
memory = metrics_helm_release['memory']
storage = metrics_helm_release['storage']
num_of_pods = metrics_helm_release['num_of_pods']
num_of_containers = metrics_helm_release['num_of_containers']
cpuMetrics = 'cpu{helmrelease="'+release_name+'"} ' + str(cpu) + ' ' + str(millis)
memoryMetrics = 'memory{helmrelease="'+release_name+'"} ' + str(memory) + ' ' + str(millis)
storageMetrics = 'storage{helmrelease="'+release_name+'"} ' + str(storage) + ' ' + str(millis)
numOfPods = 'pods{helmrelease="'+release_name+'"} ' + str(num_of_pods) + ' ' + str(millis)
numOfContainers = 'containers{helmrelease="'+release_name+'"} ' + str(num_of_containers) + ' ' + str(millis)
metricsToReturn = cpuMetrics + "\n" + memoryMetrics + "\n" + storageMetrics + "\n" + numOfPods + "\n" + numOfContainers
return metricsToReturn

if __name__ == '__main__':
crMetrics = CRMetrics()

res_type = sys.argv[1]

if res_type == "cr":
custom_resource = sys.argv[2]
custom_resource_instance = sys.argv[3]
namespace = sys.argv[4]
outputformat = sys.argv[5]
follow_connections = sys.argv[6]
kubeconfig = sys.argv[7]
crMetrics.get_metrics_cr(custom_resource, custom_resource_instance, namespace, follow_connections, outputformat, kubeconfig)

if res_type == "account":
creator_account = sys.argv[2]
if len(sys.argv) == 4:
crMetrics._get_metrics_creator_account_with_connections(creator_account)
else:
crMetrics.get_metrics_creator_account(creator_account)

if res_type == "service":
service_name = sys.argv[2]
namespace = sys.argv[3]
crMetrics.get_metrics_service(service_name, namespace)

if res_type == "helmrelease":
release_name = sys.argv[2]
op_format = sys.argv[3]
metrics_helm_release = crMetrics.get_metrics_helmrelease(release_name)
if op_format == "pretty":
crMetrics.print_metrics_helmrelease(metrics_helm_release)
elif op_format == "prometheus":
prom_metrics = crMetrics.prometheus_metrics_helmrelease(release_name, metrics_helm_release)
print(prom_metrics)
elif op_format == "json":
metrics_helm_release_json = json.dumps(metrics_helm_release)
print(metrics_helm_release_json)
else:
print("Unrecognized output format. Supported formats - pretty/json/prometheus")
custom_resource = sys.argv[1]
custom_resource_instance = sys.argv[2]
outputformat = sys.argv[3]
kubeconfig = sys.argv[4]
crMetrics.get_metrics_cr(custom_resource, custom_resource_instance, outputformat, kubeconfig)
Loading
Loading