@cyc-seattle/platform 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/scheduled-job.d.ts +5 -0
- package/dist/scheduled-job.js +1 -0
- package/dist/web-service.d.ts +8 -0
- package/dist/web-service.js +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ app owns. The apps that run on it live in their own repos, such as
|
|
|
11
11
|
| [`bootstrap`](stacks/bootstrap) | Service accounts and project IAM, the Pulumi state buckets and KMS keys, and the org's GitHub repos and settings | A human with project Owner and `gh` `admin:org`. Never CI. |
|
|
12
12
|
| [`infra`](stacks/infra) | The VPC, the cluster subnet and its Cloud NAT on a static address, the private services peering, the prod and dev Cloud SQL instances, the DNS zones, Artifact Registry, the GKE Autopilot cluster, the shared Gateway, its address, certificates, and dev's DNS records, the `dev` and `prod` namespaces with their quotas and network policies, dev's RBAC, the prod Job alerts, and each environment's `platform/outputs.json` | `deploy-runner`, from Actions after approval. A deployer, with `mise run deploy`, when breaking glass. |
|
|
13
13
|
| [`smoke`](stacks/smoke) | One `WebService` in dev, at `smoke.dev.cycsail.team`, for the integration tests | `deploy-dev`, from Actions on every PR. A deployer, with `PULUMI_STACK=dev mise run deploy`, when breaking glass. |
|
|
14
|
-
| [`backend`](stacks/backend) | Directus, with the schema apply from `schemas/`, its roles, policies, and permission rules, the sync machine users, its OIDC client, and MCP
|
|
14
|
+
| [`backend`](stacks/backend) | Directus, with the schema apply from `schemas/`, its roles, policies, and permission rules, the sync machine users, its OIDC client, and MCP, and the clubspot-sync and gsuite-sync CronJobs, with dev's Clubspot and Workspace fakes | `deploy-dev`, from Actions on every PR. Dev only, until prod cuts over (cyc-seattle/workplace#6 step 6). |
|
|
15
15
|
|
|
16
16
|
## @cyc-seattle/platform
|
|
17
17
|
|
|
@@ -47,7 +47,9 @@ releases each merge to `main` with semantic-release, versioned by the convention
|
|
|
47
47
|
|
|
48
48
|
Every app runs on the one GKE Autopilot cluster, in its environment's namespace. Prod runs on
|
|
49
49
|
regular capacity, and dev on Spot pods. isthmia's apps (Authentik, Directus, the portal, and the
|
|
50
|
-
two syncs as CronJobs) run in both, and dev adds Mailpit and the Clubspot and Workspace fakes.
|
|
50
|
+
two syncs as CronJobs) run in both, and dev adds Mailpit and the Clubspot and Workspace fakes. In dev,
|
|
51
|
+
platform's `backend` deploys Directus, the syncs, and the fakes, and dev's sync CronJobs are
|
|
52
|
+
suspended: the integration features and `mise run reset` run them as Jobs (cyc-seattle/isthmia#271).
|
|
51
53
|
|
|
52
54
|
| Stack | Namespace | Domain | Deploy identity |
|
|
53
55
|
| ------ | --------- | ------------------ | --------------- |
|
package/dist/scheduled-job.d.ts
CHANGED
|
@@ -9,6 +9,11 @@ export interface ScheduledJobArgs extends PodArgs {
|
|
|
9
9
|
activeDeadlineSeconds?: number;
|
|
10
10
|
/** How many times a failed run retries. Defaults to 0, so the next scheduled run is the retry. */
|
|
11
11
|
backoffLimit?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Stops the scheduled runs, while a Job made from the CronJob still runs. Defaults to false. Unset,
|
|
14
|
+
* it stays out of the spec, so the CronJobs deployed before it existed show no diff.
|
|
15
|
+
*/
|
|
16
|
+
suspend?: boolean;
|
|
12
17
|
}
|
|
13
18
|
/**
|
|
14
19
|
* A CronJob with the platform's secure defaults, and a Kubernetes ServiceAccount, both named `name`.
|
package/dist/scheduled-job.js
CHANGED
|
@@ -22,6 +22,7 @@ export class ScheduledJob extends pulumi.ComponentResource {
|
|
|
22
22
|
schedule: args.schedule,
|
|
23
23
|
timeZone: args.timeZone ?? "America/Los_Angeles",
|
|
24
24
|
concurrencyPolicy: "Forbid",
|
|
25
|
+
...(args.suspend !== undefined && { suspend: args.suspend }),
|
|
25
26
|
jobTemplate: {
|
|
26
27
|
metadata: { labels },
|
|
27
28
|
spec: {
|
package/dist/web-service.d.ts
CHANGED
|
@@ -11,6 +11,14 @@ export interface WebServiceArgs extends WorkloadArgs {
|
|
|
11
11
|
readinessProbe: Probe & {
|
|
12
12
|
httpGet: pulumi.Input<k8s.types.input.core.v1.HTTPGetAction>;
|
|
13
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* The load balancer's check timing. GKE's default is every 5s from each of several probers, which
|
|
16
|
+
* an app whose readiness check reaches its database may not afford.
|
|
17
|
+
*/
|
|
18
|
+
healthCheck?: {
|
|
19
|
+
checkIntervalSec?: number;
|
|
20
|
+
timeoutSec?: number;
|
|
21
|
+
};
|
|
14
22
|
}
|
|
15
23
|
/** Returns `hostname` if it is the environment's domain or a name under it, and throws otherwise. */
|
|
16
24
|
export declare function checkHostname(hostname: string, domain: string): string;
|
package/dist/web-service.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cyc-seattle/platform",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Pulumi components for CYC's shared Google Cloud platform: WebService, the platform outputs reader, and the stacks that build the platform",
|
|
5
5
|
"author": "CYC Community Sailing Center",
|
|
6
6
|
"license": "Apache-2.0",
|