Skip to content

Commit b7aa80f

Browse files
Removing Namespace parameter from kubectl plugins (#1422)
1 parent 60836b6 commit b7aa80f

File tree

10 files changed

+29
-85
lines changed

10 files changed

+29
-85
lines changed

docs/sample-example.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ Retrieve KubePlus consumer kubeconfig as follows:
6666

6767
.. code-block:: bash
6868
69-
$ kubectl retrieve kubeconfig consumer $KUBEPLUS_NS > consumer.conf
69+
$ kubectl retrieve kubeconfig consumer > consumer.conf
7070
7171
In the steps below, use the appropriate kubeconfig in the provider and consumer actions by passing the ``--kubeconfig=<provider/consumer kubeconfig file>`` flag.
7272

examples/multitenancy/application-hosting/odoo/steps.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ This example shows delivering Bitnami Odoo Helm chart as-a-service using KubePlu
3939
- Direct
4040
$ kubectl get configmaps kubeplus-saas-consumer-kubeconfig -n $KUBEPLUS_NS -o jsonpath="{.data.kubeplus-saas-consumer\.json}" > consumer.conf
4141
- Using kubeplus plugin
42-
$ kubectl retrieve kubeconfig consumer default -s $server -k kubeplus-saas-provider.json > consumer.conf
42+
$ kubectl retrieve kubeconfig consumer -s $server -k kubeplus-saas-provider.json > consumer.conf
4343

4444
5. Check permissions for provider and consumer service accounts, which are created by KubePlus:
4545
$ kubectl auth can-i --list --as=system:serviceaccount:default:kubeplus-saas-provider

examples/multitenancy/application-hosting/wordpress/steps.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ $ kubectl kubeplus commands
3232
$ helm install kubeplus "https://github.com/cloud-ark/operatorcharts/blob/master/kubeplus-chart-4.1.3.tgz?raw=true" -n $KUBEPLUS_NS --kubeconfig=kubeplus-saas-provider.json
3333

3434
5. Extract consumer kubeconfig:
35-
$ kubectl retrieve kubeconfig consumer $KUBEPLUS_NS -s $apiserver > consumer.conf
35+
$ kubectl retrieve kubeconfig consumer -s $apiserver > consumer.conf
3636
OR
3737
$ kubectl get configmaps kubeplus-saas-consumer-kubeconfig -n $KUBEPLUS_NS -o jsonpath="{.data.kubeplus-saas-consumer\.json}" > consumer.conf
3838

examples/multitenancy/hello-world/steps.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ $ kubectl get pods (wait till kubeplus pod is Running)
3636
Get Consumer kubeconfig:
3737
---------------------------------------
3838
Extract consumer kubeconfig:
39-
$ kubectl retrieve kubeconfig consumer $KUBEPLUS_NS -s $apiserver > consumer.conf
39+
$ kubectl retrieve kubeconfig consumer -s $apiserver > consumer.conf
4040
OR
4141
$ kubectl get configmaps kubeplus-saas-consumer-kubeconfig -n $KUBEPLUS_NS -o jsonpath="{.data.kubeplus-saas-consumer\.json}" > consumer.conf
4242

examples/multitenancy/platform-engineering/steps.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ Platform Engineering team
4545
- check that OpenAPISchema has been defined on the CRD corresponding to the attributes in the values.yaml of the CustomMysql Helm chart.
4646

4747
5. Download the consumer kubeconfig file:
48-
$ kubectl retrieve kubeconfig consumer default -s $server -k kubeplus-saas-provider.json > consumer.conf
48+
$ kubectl retrieve kubeconfig consumer -s $server -k kubeplus-saas-provider.json > consumer.conf
4949

5050
You can share consumer.conf with your product teams.
5151

plugins/consumerkubeconfigretriever.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
import subprocess
44
import sys
55
import os
6-
#import yaml
6+
import re
7+
from crmetrics import CRBase
78

89

9-
class ConsumerKubeconfigRetriever(object):
10+
class ConsumerKubeconfigRetriever(CRBase):
1011

1112
def _get_kubeplus_ns(self):
1213
cmd = " kubectl get deployments -A "
@@ -23,12 +24,12 @@ def _get_kubeplus_ns(self):
2324
break
2425
return kubeplusNamespace
2526

26-
def _apply_consumer_rbac(self, kubeplusNS, kindplural, providerkubeconfig):
27+
def _apply_consumer_rbac(self, kindplural, providerkubeconfig):
2728

2829
group = "platformapi.kubeplus"
2930
version = "v1alpha1"
3031
sa = 'kubeplus-saas-consumer'
31-
#ksnamespace = self._get_kubeplus_ns()
32+
kubeplusNS = self.get_kubeplus_namespace(providerkubeconfig)
3233

3334
role = {}
3435
role["apiVersion"] = "rbac.authorization.k8s.io/v1"
@@ -133,9 +134,8 @@ def _apply_consumer_rbac(self, kubeplusNS, kindplural, providerkubeconfig):
133134

134135
if __name__ == '__main__':
135136

136-
kubeplusNS = sys.argv[1]
137-
kindplural = sys.argv[2]
138-
providerkubeconfig = sys.argv[3]
137+
kindplural = sys.argv[1]
138+
providerkubeconfig = sys.argv[2]
139139
consumerKfgRetriever = ConsumerKubeconfigRetriever()
140-
consumerKfgRetriever._apply_consumer_rbac(kubeplusNS, kindplural, providerkubeconfig)
140+
consumerKfgRetriever._apply_consumer_rbac(kindplural, providerkubeconfig)
141141

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22
import json
33
import subprocess
44
import os
5+
from crmetrics import CRBase
56

67

7-
class ProviderKubeconfigRetriever(object):
8+
class KubeconfigRetriever(CRBase):
89

9-
def retrieve_kubeconfig(self, kubeplusNS, serverURL, kubeconfigFor, kubeconfig):
10+
def retrieve_kubeconfig(self, serverURL, kubeconfigFor, kubeconfig):
1011

12+
kubeplusNS = self.get_kubeplus_namespace(kubeconfig)
1113
if kubeconfigFor == 'provider':
1214
cmd = "kubectl get configmaps kubeplus-saas-provider -n " + kubeplusNS + " -o jsonpath=\"{.data.kubeplus-saas-provider\.json}\""
1315
if kubeconfigFor == 'consumer':
@@ -38,9 +40,8 @@ def retrieve_kubeconfig(self, kubeplusNS, serverURL, kubeconfigFor, kubeconfig):
3840

3941
if __name__ == '__main__':
4042

41-
kubeplusNS = sys.argv[1]
42-
serverURL = sys.argv[2] # <api server url>
43-
kubeconfigFor = sys.argv[3]
44-
kubeconfigPath = sys.argv[4] # <complete kubeconfig path>
45-
providerKfgRetriever = ProviderKubeconfigRetriever()
46-
providerKfgRetriever.retrieve_kubeconfig(kubeplusNS, serverURL, kubeconfigFor, kubeconfigPath)
43+
serverURL = sys.argv[1] # <api server url>
44+
kubeconfigFor = sys.argv[2]
45+
kubeconfigPath = sys.argv[3] # <complete kubeconfig path>
46+
kfgRetriever = KubeconfigRetriever()
47+
kfgRetriever.retrieve_kubeconfig(serverURL, kubeconfigFor, kubeconfigPath)

plugins/kubectl-grantpermission-consumer

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

3-
if (( $# < 3 )); then
4-
echo "kubectl grantpermission consumer <resourceplural> <providerKubeconfig> <Namespace in which KubePlus is deployed>"
3+
if (( $# < 2 )); then
4+
echo "kubectl grantpermission consumer <resourceplural> <providerKubeconfig>"
55
exit 0
66
fi
77

@@ -11,7 +11,7 @@ providerKubeconfig=$2
1111

1212
pythonPath=`which python3`
1313
if [[ $? == 0 ]]; then
14-
`$pythonPath /$KUBEPLUS_HOME/plugins/consumerkubeconfigretriever.py $kubeplusNS $resPlural $providerKubeconfig`
14+
`$pythonPath /$KUBEPLUS_HOME/plugins/consumerkubeconfigretriever.py $resPlural $providerKubeconfig`
1515
echo "Consumer granted permission on $resPlural."
1616
else
1717
echo "Encountered error in granting permission to consumer on $resPlural"

plugins/kubectl-retrieve-kubeconfig-consumer

Lines changed: 2 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ print_help () {
77
echo " kubectl retrieve kubeconfig consumer"
88
echo ""
99
echo "SYNOPSIS"
10-
echo " kubectl retrieve kubeconfig consumer <Namespace in which KubePlus is deployed> [-s <api server url>] [-k <kubeconfig path>]"
10+
echo " kubectl retrieve kubeconfig consumer [-s <api server url>] [-k <kubeconfig path>]"
1111
echo ""
1212
echo "DESCRIPTION"
1313
echo " This command is used to retrieve consumer kubeconfig file."
@@ -17,17 +17,9 @@ print_help () {
1717
exit 0
1818
}
1919

20-
if (( $# < 1 )); then
21-
print_help
22-
exit 0
23-
fi
24-
25-
kubeplusNS=$1
2620
kubeconfig="$HOME/.kube/config" #default value
2721
serverURL='-1'
2822

29-
shift;
30-
3123
#echo $@
3224
while getopts ":k:s:" opt; do
3325
case ${opt} in
@@ -46,33 +38,5 @@ while getopts ":k:s:" opt; do
4638
esac
4739
done
4840

49-
python /$KUBEPLUS_HOME/plugins/providerkubeconfigretriever.py $kubeplusNS $serverURL "consumer" $kubeconfig
50-
51-
52-
# if (( $# < 1 )); then
53-
# echo "kubectl retrieve kubeconfig consumer <Namespace in which KubePlus is deployed> [--server=<api server url>]"
54-
# echo " --server=<api server url> is an optional argument to pass the URL of the API server. Generated kubeconfig"
55-
# echo " will embed this URL instead of the IP based URL that is generated by KubePlus."
56-
# exit 0
57-
# # echo "kubectl retrieve kubeconfig consumer <Namespace in which KubePlus is deployed>" #<resourceplural> <providerKubeconfig>"
58-
# # exit 0
59-
# fi
60-
61-
# kubeplusNS=$1
62-
# serverURL='-1'
63-
# kubeconfig=~/.kube/config
64-
# if (( $# == 2 )); then
65-
# serverURL=$2
66-
# #echo "Server URL:$serverURL"
67-
# fi
68-
69-
# if (( $# == 3 )); then
70-
# serverURL=$2
71-
# #echo "Server URL:$serverURL"
72-
# kubeconfig=$3
73-
# fi
74-
75-
76-
# #kubectl get configmaps kubeplus-saas-consumer-kubeconfig -n $kubeplusNS -o jsonpath="{.data.kubeplus-saas-consumer\.json}"
41+
python /$KUBEPLUS_HOME/plugins/kubeconfigretriever.py $serverURL "consumer" $kubeconfig
7742

78-
# python /$KUBEPLUS_HOME/plugins/providerkubeconfigretriever.py $kubeplusNS $serverURL "consumer" $kubeconfig

plugins/kubectl-retrieve-kubeconfig-provider

Lines changed: 2 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ print_help () {
77
echo " kubectl retrieve kubeconfig provider"
88
echo ""
99
echo "SYNOPSIS"
10-
echo " kubectl retrieve kubeconfig provider <Namespace in which KubePlus is deployed> [-s <api server url>] [-k <kubeconfig path>]"
10+
echo " kubectl retrieve kubeconfig provider [-s <api server url>] [-k <kubeconfig path>]"
1111
echo ""
1212
echo "DESCRIPTION"
1313
echo " This command is used to retrieve provider kubeconfig file."
@@ -17,17 +17,9 @@ print_help () {
1717
exit 0
1818
}
1919

20-
if (( $# < 1 )); then
21-
print_help
22-
exit 0
23-
fi
24-
25-
kubeplusNS=$1
2620
kubeconfig="$HOME/.kube/config" #default value
2721
serverURL='-1'
2822

29-
shift;
30-
3123
#echo $@
3224
while getopts ":k:s:" opt; do
3325
case ${opt} in
@@ -46,18 +38,5 @@ while getopts ":k:s:" opt; do
4638
esac
4739
done
4840

49-
python /$KUBEPLUS_HOME/plugins/providerkubeconfigretriever.py $kubeplusNS $serverURL "provider" $kubeconfig
50-
51-
#if (( $# == 2 )); then
52-
# serverURL=$2
53-
#echo "Server URL:$serverURL"
54-
#fi
55-
56-
#if (( $# == 3 )); then
57-
# serverURL=$2
58-
#echo "Server URL:$serverURL"
59-
# kubeconfig=$3
60-
#fi
61-
62-
#kubeconfig="--kubeconfig="$kubeconfig1
41+
python /$KUBEPLUS_HOME/plugins/kubeconfigretriever.py $serverURL "provider" $kubeconfig
6342

0 commit comments

Comments
 (0)