Skip to content

Commit 574112c

Browse files
Update K8sController.cs
1 parent f392bb4 commit 574112c

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

Controllers/K8sController.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,57 +8,87 @@ namespace K8sControlApi.Controllers;
88
public class K8sController : ControllerBase
99
{
1010
private readonly K8sService _svc;
11+
private static readonly bool EnableAuth =
12+
Environment.GetEnvironmentVariable("ENABLE_BASIC_AUTH")?.ToLower() == "true";
1113

1214
public K8sController(K8sService svc)
1315
{
1416
_svc = svc;
1517
}
1618

19+
private IActionResult UnauthorizedIfNeeded()
20+
{
21+
if (EnableAuth && !User.Identity?.IsAuthenticated == true)
22+
return Unauthorized();
23+
return null;
24+
}
25+
1726
[HttpPost("restart")]
1827
public async Task<IActionResult> RestartNamespace(string @namespace)
1928
{
29+
var unauth = UnauthorizedIfNeeded();
30+
if (unauth != null) return unauth;
31+
2032
await _svc.RestartNamespace(@namespace);
2133
return Ok($"Restarted pods in namespace '{@namespace}'");
2234
}
2335

2436
[HttpPost("stop")]
2537
public async Task<IActionResult> StopNamespace(string @namespace)
2638
{
39+
var unauth = UnauthorizedIfNeeded();
40+
if (unauth != null) return unauth;
41+
2742
await _svc.StopNamespace(@namespace);
2843
return Ok($"Scaled all deployments in namespace '{@namespace}' to 0");
2944
}
3045

3146
[HttpPost("start")]
3247
public async Task<IActionResult> StartNamespace(string @namespace)
3348
{
49+
var unauth = UnauthorizedIfNeeded();
50+
if (unauth != null) return unauth;
51+
3452
await _svc.StartNamespace(@namespace);
3553
return Ok($"Scaled all deployments in namespace '{@namespace}' to last known replica count");
3654
}
3755

3856
[HttpPost("deployment/{deployment}/restart")]
3957
public async Task<IActionResult> RestartDeployment(string @namespace, string deployment)
4058
{
59+
var unauth = UnauthorizedIfNeeded();
60+
if (unauth != null) return unauth;
61+
4162
await _svc.RestartDeployment(@namespace, deployment);
4263
return Ok($"Restarted pods in deployment '{deployment}'");
4364
}
4465

4566
[HttpPost("deployment/{deployment}/stop")]
4667
public async Task<IActionResult> StopDeployment(string @namespace, string deployment)
4768
{
69+
var unauth = UnauthorizedIfNeeded();
70+
if (unauth != null) return unauth;
71+
4872
await _svc.StopDeployment(@namespace, deployment);
4973
return Ok($"Scaled deployment '{deployment}' to 0");
5074
}
5175

5276
[HttpPost("deployment/{deployment}/start")]
5377
public async Task<IActionResult> StartDeployment(string @namespace, string deployment)
5478
{
79+
var unauth = UnauthorizedIfNeeded();
80+
if (unauth != null) return unauth;
81+
5582
await _svc.StartDeployment(@namespace, deployment);
5683
return Ok($"Started deployment '{deployment}'");
5784
}
5885

5986
[HttpPost("pod/{pod}/restart")]
6087
public async Task<IActionResult> RestartPod(string @namespace, string pod)
6188
{
89+
var unauth = UnauthorizedIfNeeded();
90+
if (unauth != null) return unauth;
91+
6292
await _svc.RestartPod(@namespace, pod);
6393
return Ok($"Restarted pod '{pod}'");
6494
}

0 commit comments

Comments
 (0)