Skip to content

Commit eefc02f

Browse files
Adapt cluster-stack plugin based on changes made in target branch and update README
Signed-off-by: michal.gubricky <[email protected]>
1 parent f136577 commit eefc02f

File tree

8 files changed

+383
-308
lines changed

8 files changed

+383
-308
lines changed

Tests/kaas/clusterspec.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ clusters:
33
default:
44
branch: default
55
kubeconfig: kubeconfig.yaml
6+
clouds_yaml_path: <clouds_yaml_path>
67
v1.29:
78
branch: "1.29"
89
kubeconfig: kubecfg129.yaml
10+
clouds_yaml_path: <clouds_yaml_path>
911
v1.30:
1012
branch: "1.30"
1113
kubeconfig: kubecfg130.yaml

Tests/kaas/plugin/README.md

Lines changed: 81 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
## Development environment
44

5-
### requirements
5+
### Requirements
66

77
* [docker](https://docs.docker.com/engine/install/)
88
* [kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation)
99
* [sonobuoy](https://sonobuoy.io/docs/v0.57.1/#installation)
1010

11-
### setup for development
11+
### Setup for Development
1212

13-
1. Generate python 3.10 env
13+
1. **Generate python 3.10 env**
1414

1515
```bash
1616
sudo apt-get install python3.10-dev
@@ -23,17 +23,91 @@
2323

2424
```
2525

26-
2. Install dependencies:
26+
2. **Install dependencies:**
2727

2828
```bash
2929
(venv) pip install pip-tools
3030
(venv) pip-compile requirements.in
3131
(venv) pip-sync requirements.txt
3232
```
3333

34-
3. Set environment variables and launch the process:
34+
3. **Create a Cluster**
35+
36+
To create a cluster, run:
3537

3638
```bash
37-
(venv) export CLUSTER_PROVIDER="kind"
38-
(venv) python run.py
39+
(venv) python run_plugin.py create <plugin-name> ../clusterspec.yaml
3940
```
41+
42+
## Setting up and running the cluster-stacks plugin
43+
44+
This section covers how to configure and run the `cluster-stacks` plugin to provision Kubernetes clusters and perform conformance tests.
45+
46+
### Requirements for cluster-stacks plugin
47+
48+
In addition to the core requirements, ensure the following are set up:
49+
50+
* An **OpenStack** environment configured and accessible.
51+
* A `clouds.yaml` file defining OpenStack credentials and endpoints.
52+
* An installing the envsubst via this command:
53+
```bash
54+
GOBIN=/tmp go install github.com/drone/envsubst/v2/cmd/envsubst@latest
55+
```
56+
57+
### Environment Variables
58+
59+
Before running the `cluster-stacks` plugin, you need to set up the following environment variable:
60+
61+
- **GIT_ACCESS_TOKEN**: This token is required for Git operations, especially if your repository is private.
62+
63+
To set the `GIT_ACCESS_TOKEN`, run the following command in your terminal:
64+
65+
```bash
66+
export GIT_ACCESS_TOKEN=<your-github-token>
67+
```
68+
69+
### Configuring clusterspec.yaml file
70+
71+
The `clusterspec.yaml` file is used to set parameters for creating a Kubernetes cluster with the `cluster-stacks` plugin. This file allows you to specify details related to the cluster-stack, Git integration, and cluster configurations.
72+
73+
### Mandatory Parameter
74+
75+
The only mandatory parameter in `clusterspec.yaml` is `clouds_yaml_path` field, which points to the `clouds.yaml` file for OpenStack. If other parameters are omitted, the default values will be used.
76+
77+
### Optional Parameters
78+
79+
You can include additional parameters in `clusterspec.yaml` to customize the cluster setup. These optional parameters are grouped below by their category.
80+
81+
#### Cluster-Stack Related Parameters
82+
83+
These parameters configure specific settings for the cluster-stack:
84+
85+
```yaml
86+
cs_name: <cs_name> # Default: "scs"
87+
cs_k8s_version: <cs_k8s_version> # Default: "1.29"
88+
cs_version: <cs_version> # Default: "v1"
89+
cs_channel: <cs_channel> # Default: "stable"
90+
cs_cloudname: <cs_cloudname> # Default: "openstack"
91+
```
92+
93+
#### Git-Related Parameters
94+
95+
The [Cluster Stack Operator](https://github.com/sovereignCloudStack/cluster-stack-operator/) (CSO) utilizing the [Cluster Stack Provider OpenStack](https://github.com/SovereignCloudStack/cluster-stacks/tree/main/providers/openstack) (CSPO) must be directed to the Cluster Stacks repository housing releases for the OpenStack provider. Modify the following parameters if you wish to redirect CSO and CSPO to an alternative Git repository
96+
97+
```yaml
98+
git_provider: <git_provider> # Default: "github"
99+
git_org_name: <git_org_name> # Default: "SovereignCloudStack"
100+
git_repo_name: <git_repo_name> # Default: "cluster-stacks"
101+
```
102+
103+
#### Cluster Parameters
104+
105+
Set these parameters to customize the configuration for your cluster.
106+
107+
```yaml
108+
cs_cluster_name: <cs_cluster_name> # Default: "cs-cluster"
109+
cs_pod_cidr: <cs_pod_cidr> # Default: "192.168.0.0/16"
110+
cs_service_cidr: <cs_service_cidr> # Default: "10.96.0.0/12"
111+
cs_external_id: <cs_external_id> # Default: A generated UUID
112+
cs_k8s_patch_version: <cs_k8s_patch_version> # Default: "6"
113+
```

Tests/kaas/plugin/clusterstack.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ spec:
2626
spec:
2727
identityRef:
2828
kind: Secret
29-
name: ${CS_SECRETNAME}
29+
name: ${CS_SECRETNAME}

Tests/kaas/plugin/interface.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,21 +47,18 @@ def _delete_cluster(self, cluster_name) -> (str, int):
4747
pass
4848

4949
@final
50-
def create(self, name="scs-cluster", version=None, kubeconfig_filepath=None):
50+
def create(self, name="scs-cluster", version=None, kubeconfig_filepath=None, **kwargs):
5151
"""
5252
This method is to be called to create a k8s cluster
5353
:param: kubernetes_version:
5454
:return: uuid
5555
"""
5656
self.cluster_name = name
5757
self.cluster_version = version
58-
<<<<<<< HEAD
59-
=======
6058
self.kubeconfig_filepath = kubeconfig_filepath
6159

62-
try:
63-
self._create_cluster()
64-
>>>>>>> Add ability to remove kubeconfig
60+
# Store any additional configuration options
61+
self.config_options = kwargs # Store in a dictionary for later use
6562

6663
self._create_cluster() # TODO: maybe we do not need to use try exept here?
6764
# try:
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
apiVersion: v1
2+
clusters:
3+
- cluster:
4+
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM2akNDQWRLZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJME1URXdOVEV6TURZd05Gb1hEVE0wTVRFd016RXpNVEV3TkZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS085Cjh4eUREYmVneXJzbnB5RUdic0V0aWF4SXk4QTh5ampkS2M0WEJtVllXdFdDTGhsUXJsUk03YTJYbXFSbzlqWUkKWjVJVlJSV2lINys3dExBYUdJT25jeExJTWRTTzNBcFE5UHZMMUx6OXJNcTdiNjBVVzlGa09qSm81MzM2SDhsagpuL25GWFhqU0lodnNINkRjeVROUTdIMlhJanU1eVVqZ1F0U1NEVmRwQzRtd01DVVBlNFZJcmE1d1N0ejllSWJuCk1WcWprY2ZJdGdGYmtpRzJiUEprRXFSWDNld3NlblRoTmtMNUk5ZVk0L0tkQ0dMRzJNbGVEb0tCUEFKWGM2TUMKcUs4YjA3cTBqVUxHQ05RNXlpOUpXMVZBR0MzS2htNk4wazlYSkVOWGhtSkJDcDgvWmtTalNmMUlNWk5aRjB1MApJTCtNbkRWeEhTeG9aTXdqbzJNQ0F3RUFBYU5GTUVNd0RnWURWUjBQQVFIL0JBUURBZ0trTUJJR0ExVWRFd0VCCi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGS3c4YUd0YlV1TVdBZmoyTkFSUTJwSWlDaE1sTUEwR0NTcUcKU0liM0RRRUJDd1VBQTRJQkFRQ2V4MkJ4Z0VuNGxEem16LzR5Nis3VHJMZDBoaEhCVThaK01kN2ZXOFlaYldWSwpaVm5CRGh2N1o2akt3TFdrYVFhVGJabWJ6eG1GNjBYQ0hTUVZ2ZkJyVzlibFIyc1JuVlJySXQybHdKTUxhc2lYCkNxR21MOG40R0RObEdMemZySVVSSkFPZzB6YlFLZ0NRaTN3UGhoOHlrV1o0dTlrQnkvb29rUmFPbWxIeDUvNGkKQXgzeUprMERHNjYyTnppaGJoUDBjdm5qZ1hKRkxOby9kZUE0VEpLK2h1enliMEVER21kTTEzL3h5c24rY2xyVQowSmpzRHlxaUNZdklZWHVJcE1iYXlnL2UydmViNHh6cWFnNmxiMExzTWxYbjFrOVZmNUJVQ2lmMXhEc3dVUUd2CnRoRmdXWk5XWWpYYkdhdEg2UVplbVhtanYwSCt6SzR5b0Frd0h6WnQKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
5+
server: https://213.131.230.24:6443
6+
name: cs-cluster
7+
contexts:
8+
- context:
9+
cluster: cs-cluster
10+
user: cs-cluster-admin
11+
name: cs-cluster-admin@cs-cluster
12+
current-context: cs-cluster-admin@cs-cluster
13+
kind: Config
14+
preferences: {}
15+
users:
16+
- name: cs-cluster-admin
17+
user:
18+
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFekNDQWZ1Z0F3SUJBZ0lJZTV5T2Z3c1FiRWd3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TkRFeE1EVXhNekEyTURSYUZ3MHlOVEV4TURVeE16RXhNRFJhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQThaRGdNdjlZazRjRXpQclgKRFhjYU53dmVEcFJMSFVwNDhGOFFKZFh6ZG5PckVmVi90QjhIOFQvcU5HUVJSSXFzZ2FtU3JzRHJHRWZtKzdxTwppdU9OcGxWOFJYVlBadmx5aU5TS3IybEJOMHJIMWlrdEU3S3lOemJkemhlMU1TazVyQzJSY2tOMEQvM29BSThFClRJTHh2cXRjRVdZQktzWGRoOXdiZUJLYzZkenYwczlkWVk1Vkxjd095ejdBQTExRVhabnZYZmYxQTgreVczT2gKMUxLWDVpMFRNSHN3ZDc5ZkFORGhQRE45NG83RGVoWHdqQ0lmZGpLeVdiNUFyUVRVM0VwRG1heDZvRFhOeWdHMwppM0FjSlpLSWs5Q0RUUDM2RFB3a1luSWIxTXlWMlVzSzVsVG85RG9GRGIwbHdrZUt4UTZsNDRTa3NiRS9McjB1CnFTUHA1d0lEQVFBQm8wZ3dSakFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0h3WURWUjBqQkJnd0ZvQVVyRHhvYTF0UzR4WUIrUFkwQkZEYWtpSUtFeVV3RFFZSktvWklodmNOQVFFTApCUUFEZ2dFQkFIekx5ZkZROFdzMExaalRwbXZHQmtrdk05bnNhNkZma0FkL2RabmhIVFV0Wll0WUkyNXUrMEFTCkVxVlBrZmxMaS92NlBNWlYrazlzbk4rRTJWTlliYmh4S2txdUJBM1NoVi9PYURSTHFITnlsZHBVMFlZSmZPSkwKZHZTRzhiMHBMcEo1VVA4T0owbmFJWHdiV2o3UTU4NEFqVkVDNXdSMHBMOXdleHFjOThXckRmNUR6ODVkRDhCUgpIZ2pITklPRThEVG1HZTQ0UGlxUktzY3B6SkxuQSs1MmFxenNFNmsvSmJiOUlWcVJ3eFdHY2ErVXprKzN0SjBpClg2SXhzdytsbENYU0VSRXMwWDdDQVA5YmNTT3IvWk1HMG9QTnNZK1BsVDlLcTI3ajUxQk5rcUQyVy8rbjdNemIKNDhHOWt1N0pvLzlld3E5RDlmd1VXbis0S1dYWHNSVT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
19+
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb3dJQkFBS0NBUUVBOFpEZ012OVlrNGNFelByWERYY2FOd3ZlRHBSTEhVcDQ4RjhRSmRYemRuT3JFZlYvCnRCOEg4VC9xTkdRUlJJcXNnYW1TcnNEckdFZm0rN3FPaXVPTnBsVjhSWFZQWnZseWlOU0tyMmxCTjBySDFpa3QKRTdLeU56YmR6aGUxTVNrNXJDMlJja04wRC8zb0FJOEVUSUx4dnF0Y0VXWUJLc1hkaDl3YmVCS2M2ZHp2MHM5ZApZWTVWTGN3T3l6N0FBMTFFWFpudlhmZjFBOCt5VzNPaDFMS1g1aTBUTUhzd2Q3OWZBTkRoUEROOTRvN0RlaFh3CmpDSWZkakt5V2I1QXJRVFUzRXBEbWF4Nm9EWE55Z0czaTNBY0paS0lrOUNEVFAzNkRQd2tZbkliMU15VjJVc0sKNWxUbzlEb0ZEYjBsd2tlS3hRNmw0NFNrc2JFL0xyMHVxU1BwNXdJREFRQUJBb0lCQUY4eGVraGVlNmRYVTdyNwpObmZsOFh5enZvUDhTRVY0cllQNzBqODJ1c1I0L0hjTlNZL1BrcSt0UWp2M0d4N3BqdVZoejUzeUJETURVckRzCmFYT3VESW41c2drbEcyODI2YjJtRkNqZno0VmNnTGVTYm1NT3psQVgzUHgwTjBEeVAvbnIweDgyR2F5Ym9DdG8KTUlkK0tvbTZ1WU5ac1NnTDVTcSt3RXhtK1ZMbXE4TWwwS2l6Y2ZqcDJ0cVE2NmwvV1dSQm9kSTdrdmI5cXN3MwpPbGp5bEJwUVFzMHNQRitiMldhcThLZjNHSllaSmNOS0piTzVxa3p6MCtXNklPYzVrbE9YSjU5Zy9PQ05LMEhyCmxqWEdSMDdOWFJSV2Nla3NJT1ZUSmVOb0hxaHFoTy93djhxd2lET1dMZkUvczdEeS9yQjVYdit1ajRQdXo3YXkKTXRta2VNRUNnWUVBLzFhUS9HTmJyOGtGNmlLWVhwS2UxZmFBYnVrV0pYc01kekxTZURMSXYzQTVSbDBjR1hLbQpRc1hyMExWWXZsQjdndTlCZDNSeXBFSmM5NFZlSmduOWdEU2NTa05VSGVkWHVlVlRLeDI4Tk1WeGJ4UGswQUJYCm1MT28xWVgvU2I2V2NtVTkra0IvTzhEWDE2ZXN5ei9Kc1NpazdhS3c1YWUrVVBrNitaUHJpdmNDZ1lFQThqRXIKcjVMMnBpUzRuL2RNUVFXOUNPSUdNUVRxcEFoWmxmcGx2ZGVoUnBSbVlLQmtJVVZlVkVBVjVuTCtDQVRpWW9tdQpWdm1ZOEtPNXpzdzZJZ20zbzRIYjBTKzRWUmdXSC9TMlBVWVJXUm5JbWlDTUpEbnZTNzYvNWJRMEp6clJDWmpVCldURm1PMFB1LzdVd1hKQ28zN1BZY283WHdrUDBINTRsVDk0MmJKRUNnWUFpUXlGdFhIKy9GTUJnYklmNW1MOEwKZ3VvMDk3M3JCWm5rbk1NMU1jdFNOT0xhbUQvZkFrMWhCR0hpUFpOTTVrdk1oQUpLM3l0SzgwUzZTZ0VhSlprSQpqUWF6eUZrUE1pM0pXZ1pROE1xQ1lrUVlYWmtFZUNkSTdFS3BkRE9QVjYya2FBVnJBU0NSaWd6c2VTbHNsSUNoCjd3eENmdVF4ek5KeTF4NmN3c2FHZlFLQmdFYTJvcG0xNER3c1ZwZW1QZVp5UlhwVmZCZE41ekNUbTR5VnVxVU8KVTNGbkhPa3ppMmpIZHo1RUkrRFFUR21NKzRobnlMWnVWQUJXM1lhS3pLSnBrZXUwbTdqZEpRWDdiV0pSTWZCOApCODZySDQ0WTJMSXZGRFphY0c4aUNXUTI0UmZiUG96NFJuQWhhcVBRaEZsU2gyd2hkNTRqSk0zOHgwZUFCa2JtCmk1OXhBb0dCQUxpZmh3T0xpYTBndVdad0FUQlVXOThucTFMUDlLbVVTbzFWTFNBY2RNeEhLVU9uRmU4MG1qd08KZTU3NGsrSnlUc3VFa2NLckl1dG5TQmRUdjIramQ1aWN3Tk1MdFdyN0c3RUUrV1JiRlVOT3phNkNYWUlFeVZ3bwpTeUZWaHA5eXZDcFhTSUthV2JPQ2EwSHMrRGZ0K25BNWNETzZXUFJ1cmphVm9tMmxvNXN5Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
20+

0 commit comments

Comments
 (0)