Skip to content

Commit 4cc6dc1

Browse files
committed
fix: #205 preserve secret vars value
1 parent e1c238b commit 4cc6dc1

File tree

6 files changed

+18
-12
lines changed

6 files changed

+18
-12
lines changed

Diff for: app/Actions/Services/StartDeployment.php

+3-5
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ public function authorize(ActionRequest $request): bool
3131

3232
public function handle(User $user, Service $service, DeploymentData $deploymentData): Deployment
3333
{
34+
// TODO: Call this in Authorize? In rules?
35+
$service->team->quotas()->deployments->ensureQuota();
36+
3437
return DB::transaction(function () use ($service, $deploymentData, $user) {
3538
$taskGroup = NodeTaskGroup::create([
3639
'swarm_id' => $service->swarm_id,
@@ -56,11 +59,6 @@ public function asController(Service $service, ActionRequest $request): Response
5659
{
5760
$deploymentData = DeploymentData::make($request->validated());
5861

59-
$team = $service->team;
60-
$quotas = $team->quotas();
61-
62-
$quotas->deployments->ensureQuota();
63-
6462
$this->handle($request->user(), $service, $deploymentData);
6563

6664
return to_route('services.deployments', $service);

Diff for: app/Models/DeploymentData/Process.php

+11-6
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,13 @@ public function asNodeTasks(Deployment $deployment): array
163163
];
164164
}
165165

166+
foreach ($this->secretVars as $secretVar) {
167+
$previousSecret = $previous?->findSecretVar($secretVar->name);
168+
if ($secretVar->sameAs($previousSecret)) {
169+
$secretVar->value = $previousSecret->value;
170+
}
171+
}
172+
166173
foreach ($this->secretFiles as $secretFile) {
167174
$previousSecret = $previous?->findSecretFile($secretFile->path);
168175
if ($secretFile->sameAs($previousSecret)) {
@@ -293,7 +300,7 @@ public function asNodeTasks(Deployment $deployment): array
293300
'value' => $internalDomain,
294301
]);
295302

296-
$serviceSecretVars = $this->getSecretVars($previous);
303+
$serviceSecretVars = $this->getSecretVars();
297304

298305
$tasks[] = [
299306
'type' => NodeTaskType::LaunchService,
@@ -458,13 +465,11 @@ public function asNodeTasks(Deployment $deployment): array
458465
return $tasks;
459466
}
460467

461-
protected function getSecretVars(?Process $previous): object
468+
protected function getSecretVars(): object
462469
{
463470
return (object) collect($this->secretVars)
464-
->reduce(function ($carry, SecretVar $var) use ($previous) {
465-
$prevVar = $previous?->findSecretVar($var->name);
466-
467-
$carry[$var->name] = ($var->sameAs($prevVar) ? $prevVar->value : $var->value) ?? '';
471+
->reduce(function ($carry, SecretVar $var) {
472+
$carry[$var->name] = $var->value;
468473

469474
return $carry;
470475
}, []);

Diff for: app/Models/Service.php

-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ class Service extends Model
2626
'team_id',
2727
];
2828

29-
// Add this line to make slug the routing key
3029
public function getRouteKeyName()
3130
{
3231
return 'slug';

Diff for: resources/js/Pages/Nodes/Partials/DockerRegistries.vue

+2
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ const submitForm = async () => {
147147
<TextInput
148148
v-model="registry.username"
149149
type="password"
150+
autocomplete="off"
150151
class="w-full"
151152
:placeholder="
152153
registry.dockerName
@@ -165,6 +166,7 @@ const submitForm = async () => {
165166
<TextInput
166167
v-model="registry.password"
167168
type="password"
169+
autocomplete="off"
168170
class="w-full"
169171
:placeholder="
170172
registry.dockerName

Diff for: resources/js/Pages/Nodes/Partials/S3Storages.vue

+1
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ const submitForm = async () => {
167167
v-model="item.secretKey"
168168
type="password"
169169
class="w-full"
170+
autocomplete="off"
170171
:placeholder="
171172
item.dockerName ? 'keep secret key' : '**********'
172173
"

Diff for: resources/js/Pages/Services/Partials/DeploymentData.vue

+1
Original file line numberDiff line numberDiff line change
@@ -1427,6 +1427,7 @@ const evaluateSecretVarTemplate = (secretVar, index) => {
14271427
<TextInput
14281428
v-model="secretVar.value"
14291429
class="grow"
1430+
autocomplete="off"
14301431
:placeholder="
14311432
initialSecretVars.includes(secretVar.name)
14321433
? 'keep existing secret value'

0 commit comments

Comments
 (0)