You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace token-based auth with serviceAccountKey (JSON) across provider, SDK client, validation, docs, samples, and tests; add env flags for endpoint/no-auth.
Copy file name to clipboardExpand all lines: README.md
+28-32Lines changed: 28 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ Out of tree (controller based) implementation for `STACKIT` as a provider for Ga
8
8
9
9
A Machine Controller Manager (MCM) external provider implementation for STACKIT cloud infrastructure. This provider enables Gardener to manage virtual machines on STACKIT using the declarative Kubernetes API.
10
10
11
-
The provider was built following the [MCM provider development guidelines](https://github.com/gardener/machine-controller-manager/blob/master/docs/development/cp_support_new.md) and bootstrapped from the [sample provider template](https://github.com/gardener/machine-controller-manager-provider-sampleprovider).Following are the basic principles kept in mind while developing the external plugin.
11
+
The provider was built following the [MCM provider development guidelines](https://github.com/gardener/machine-controller-manager/blob/master/docs/development/cp_support_new.md) and bootstrapped from the [sample provider template](https://github.com/gardener/machine-controller-manager-provider-sampleprovider).
12
12
13
13
## Project Structure
14
14
@@ -59,19 +59,9 @@ This project uses **Hermit** for reproducible development environments and **jus
59
59
hermit shell-hooks
60
60
```
61
61
62
-
**just** is the task runner (defined in `justfile`). It provides a cleaner syntax than Make and better task organization:
62
+
**[just](https://github.com/casey/just)** is the task runner (defined in `justfile`):
63
63
64
-
```sh
65
-
# List all available commands
66
-
just --list
67
-
68
-
# Or just run 'just' with no arguments
69
-
just
70
64
```
71
-
72
-
### Quick Start
73
-
74
-
```sh
75
65
just build # Build the provider binary
76
66
just test # Run unit tests
77
67
just test-e2e # Run end-to-end tests
@@ -80,16 +70,22 @@ just start # Run provider locally for debugging
80
70
just docker-build # Build container image
81
71
```
82
72
83
-
**NOTE:** Run `just --list` for more information on all available commands.
73
+
```sh
74
+
# List all available commands
75
+
just --list
76
+
77
+
# Or just run 'just' with no arguments
78
+
just
79
+
```
84
80
85
81
### Deployment
86
82
87
83
See the [samples/](./samples/) directory for example manifests including:
@@ -112,11 +108,24 @@ The provider requires STACKIT credentials to be provided via a Kubernetes Secret
112
108
| Field | Required | Description |
113
109
|-------|----------|-------------|
114
110
|`projectId`| Yes | STACKIT project UUID |
115
-
|`stackitToken`| Yes | STACKIT API authentication token|
111
+
|`serviceAccountKey`| Yes | STACKIT service account credentials (JSON format)|
116
112
|`region`| Yes | STACKIT region (e.g., `eu01-1`, `eu01-2`) |
117
113
|`userData`| No | Default cloud-init user data (can be overridden in ProviderSpec) |
118
114
|`networkId`| No | Default network UUID (can be overridden in ProviderSpec) |
119
115
116
+
The service account key should be obtained from the STACKIT Portal (Project Settings → Service Accounts → Create Key) and contains JWT credentials and a private key for secure authentication.
117
+
118
+
### Environment Variables
119
+
120
+
The provider supports the following environment variables for configuration:
121
+
122
+
| Variable | Default | Description |
123
+
|----------|---------|-------------|
124
+
|`STACKIT_API_ENDPOINT`| (SDK default) | Override STACKIT API endpoint URL (useful for testing) |
125
+
|`STACKIT_NO_AUTH`|`false`| Skip authentication (for testing with mock servers, set to `true`) |
126
+
127
+
**Note:**`STACKIT_NO_AUTH=true` is only intended for testing environments with mock servers. It skips the authenticaiton step and communicates with the STACKIT API without authenticating itself. Do not use in production.
128
+
120
129
## Configuration Reference
121
130
122
131
### ProviderSpec Fields
@@ -138,19 +147,6 @@ The provider requires STACKIT credentials to be provided via a Kubernetes Secret
138
147
|`agent`| AgentSpec | No | STACKIT agent configuration |
139
148
|`metadata`| map[string]interface{} | No | Custom metadata key-value pairs |
140
149
141
-
## Contributing
142
-
143
-
Contributions are welcome! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for guidelines.
144
-
145
-
### Development Workflow
146
-
147
-
1. Fork the repository
148
-
2. Create a feature branch: `git checkout -b feature/my-feature`
149
-
3. Make changes and add tests
150
-
4. Run verification: `just test && just golang::lint`
151
-
5. Commit with meaningful messages
152
-
6. Push and create a Pull Request
153
-
154
150
### Local Testing
155
151
156
152
Use the local development environment for rapid iteration:
0 commit comments