feat(personal-context): generate & persist user personal context - #4023
Merged
Pulumi / api/prod - Update (preview)
succeeded
Jul 24, 2026 in 19s
Update (preview)
🍹 The Update (preview) for dailydotdev/api/prod was successful.
Visit the Pulumi Service for more information.
Details
Resource Changes
Name Type Operation
~ vpc-native-materialize-monthly-best-post-archives-cron kubernetes:batch/v1:CronJob update
~ vpc-native-worker-job-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-clean-expired-better-auth-sessions-cron kubernetes:batch/v1:CronJob update
~ vpc-native-hourly-notification-cron kubernetes:batch/v1:CronJob update
~ vpc-native-post-analytics-history-day-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-profile-updated-sync-cron kubernetes:batch/v1:CronJob update
~ vpc-native-temporal-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-clean-channel-highlights-cron kubernetes:batch/v1:CronJob update
~ vpc-native-private-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-calculate-top-readers-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-images-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-tag-materialized-views-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-views-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-trending-cron kubernetes:batch/v1:CronJob update
~ vpc-native-sync-subscription-with-cio-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-current-streak-cron kubernetes:batch/v1:CronJob update
~ vpc-native-post-analytics-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-personalized-digest-cron kubernetes:batch/v1:CronJob update
~ vpc-native-channel-digests-cron kubernetes:batch/v1:CronJob update
- vpc-native-api-db-migration-5ff3281e kubernetes:batch/v1:Job delete
+ vpc-native-api-clickhouse-migration-7ac75367 kubernetes:batch/v1:Job create
~ vpc-native-daily-digest-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-zombie-user-companies-cron kubernetes:batch/v1:CronJob update
~ vpc-native-rotate-weekly-quests-cron kubernetes:batch/v1:CronJob update
~ vpc-native-channel-highlights-cron kubernetes:batch/v1:CronJob update
~ vpc-native-update-highlighted-views-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-stale-user-transactions-cron kubernetes:batch/v1:CronJob update
~ vpc-native-materialize-yearly-best-post-archives-cron kubernetes:batch/v1:CronJob update
~ vpc-native-personalized-digest-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-clean-zombie-opportunities-cron kubernetes:batch/v1:CronJob update
+ api-sub-api.personal-context-generated gcp:pubsub/subscription:Subscription create
~ vpc-native-bg-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-clean-zombie-users-cron kubernetes:batch/v1:CronJob update
~ vpc-native-subscription-anniversary-achievements-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-profile-analytics-history-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-gifted-plus-cron kubernetes:batch/v1:CronJob update
~ vpc-native-generic-referral-reminder-cron kubernetes:batch/v1:CronJob update
~ vpc-native-rotate-daily-quests-cron kubernetes:batch/v1:CronJob update
~ vpc-native-check-analytics-report-cron kubernetes:batch/v1:CronJob update
~ vpc-native-squad-posts-analytics-refresh-cron kubernetes:batch/v1:CronJob update
+ api-sub-api.github-account-linked-personal-context gcp:pubsub/subscription:Subscription create
~ vpc-native-update-source-public-threshold-cron kubernetes:batch/v1:CronJob update
~ vpc-native-post-analytics-achievements-cron kubernetes:batch/v1:CronJob update
- vpc-native-api-clickhouse-migration-5ff3281e kubernetes:batch/v1:Job delete
~ vpc-native-ws-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-update-achievement-rarity-cron kubernetes:batch/v1:CronJob update
~ vpc-native-generate-search-invites-cron kubernetes:batch/v1:CronJob update
+ api-sub-api.user-updated-personal-context gcp:pubsub/subscription:Subscription create
~ vpc-native-expire-super-agent-trial-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-profile-analytics-clickhouse-cron kubernetes:batch/v1:CronJob update
~ vpc-native-user-posts-analytics-refresh-cron kubernetes:batch/v1:CronJob update
+ vpc-native-api-db-migration-7ac75367 kubernetes:batch/v1:Job create
~ vpc-native-deployment kubernetes:apps/v1:Deployment update
~ vpc-native-update-tags-str-cron kubernetes:batch/v1:CronJob update
~ vpc-native-interest-scheduled-run-cron kubernetes:batch/v1:CronJob update
~ vpc-native-clean-old-notifications-cron kubernetes:batch/v1:CronJob update
~ vpc-native-validate-active-users-cron kubernetes:batch/v1:CronJob update
~ vpc-native-post-lifecycle-state-clickhouse-cron kubernetes:batch/v1:CronJob update
Detailed Diff
View diff
pulumi:pulumi:Stack: (same)
[urn=urn:pulumi:prod::api::pulumi:pulumi:Stack::api-prod]
--outputs:--
redisHost: "10.23.0.187"
warning: failed to get regions list: failed to create compute service: credentials: could not find default credentials. See https://cloud.google.com/docs/authentication/external/set-up-adc for more information
+ gcp:pubsub/subscription:Subscription: (create)
[urn=urn:pulumi:prod::api::gcp:pubsub/subscription:Subscription::api-sub-api.github-account-linked-personal-context]
[provider=urn:pulumi:prod::api::pulumi:providers:gcp::default_9_12_0::db6cb682-d693-480f-991d-d9226e8fabf2]
> pulumi:pulumi:StackReference: (read)
[urn=urn:pulumi:prod::api::pulumi:pulumi:StackReference::dailydotdev/infra/prod]
name: "dailydotdev/infra/prod"
+ gcp:pubsub/subscription:Subscription: (create)
[urn=urn:pulumi:prod::api::gcp:pubsub/subscription:Subscription::api-sub-api.user-updated-personal-context]
[provider=urn:pulumi:prod::api::pulumi:providers:gcp::default_9_12_0::db6cb682-d693-480f-991d-d9226e8fabf2]
+ gcp:pubsub/subscription:Subscription: (create)
[urn=urn:pulumi:prod::api::gcp:pubsub/subscription:Subscription::api-sub-api.personal-context-generated]
[provider=urn:pulumi:prod::api::pulumi:providers:gcp::default_9_12_0::db6cb682-d693-480f-991d-d9226e8fabf2]
+ kubernetes:batch/v1:Job: (create)
[urn=urn:pulumi:prod::api::kubernetes:batch/v1:Job::vpc-native-api-db-migration-7ac75367]
[provider=urn:pulumi:prod::api::dailydotdev:kubernetes:GkeCluster$pulumi:providers:kubernetes::vpc-native::fcfbd2f7-4f6b-44a5-b398-0533832a829e]
+ kubernetes:batch/v1:Job: (create)
[urn=urn:pulumi:prod::api::kubernetes:batch/v1:Job::vpc-native-api-clickhouse-migration-7ac75367]
[provider=urn:pulumi:prod::api::dailydotdev:kubernetes:GkeCluster$pulumi:providers:kubernetes::vpc-native::fcfbd2f7-4f6b-44a5-b398-0533832a829e]
--outputs:--
+ metadata : {
+ creationTimestamp: "2026-07-24T10:23:10Z"
+ generation : 1
+ labels : {
+ app : "[secret]-db-migration"
+ app.kubernetes.io/name : "[secret]-db-migration"
+ app.kubernetes.io/version: "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
+ managedFields : [
+ [0]: {
+ apiVersion: "batch/v1"
+ fieldsType: "FieldsV1"
+ fieldsV1 : {
+ f:metadata: {
+ f:labels: {
+ f:app : {}
+ f:app.kubernetes.io/name : {}
+ f:app.kubernetes.io/version: {}
}
}
+ f:spec : {
+ f:completions: {}
+ f:template : {
+ f:metadata: {
+ f:labels: {
+ f:app : {}
+ f:app.kubernetes.io/name : {}
+ f:app.kubernetes.io/version: {}
}
}
+ f:spec : {
+ f:containers : {
+ k:{"name":"api-db-migration"}: {
+ . : {}
+ f:args : {}
+ f:env : {
+ k:{"name":"OTEL_SERVICE_NAME"} : {
+ . : {}
+ f:name : {}
+ f:value: {}
}
+ k:{"name":"OTEL_SERVICE_VERSION"}: {
+ . : {}
+ f:name : {}
+ f:value: {}
}
}
+ f:envFrom: {}
+ f:image : {}
+ f:name : {}
}
}
+ f:restartPolicy : {}
+ f:serviceAccountName: {}
+ f:tolerations : {}
}
}
}
}
+ manager : "pulumi-kubernetes-7759cb06"
+ operation : "Apply"
+ time : "2026-07-24T10:23:10Z"
}
]
+ name : "[secret]-db-migration-7ac75367"
+ namespace : "daily"
+ uid : "fa6466d9-20d6-4d9c-8cf0-cec2f4dc4efb"
}
+ spec : {
+ backoffLimit : 6
+ completionMode : "NonIndexed"
+ completions : 1
+ manualSelector : false
+ parallelism : 1
+ podReplacementPolicy: "TerminatingOrFailed"
+ selector : {
+ matchLabels: {
+ batch.kubernetes.io/controller-uid: "fa6466d9-20d6-4d9c-8cf0-cec2f4dc4efb"
}
}
+ suspend : false
+ template : {
+ metadata: {
+ labels: {
+ app : "[secret]-db-migration"
+ app.kubernetes.io/name : "[secret]-db-migration"
+ app.kubernetes.io/version : "a6b8c60826db6cdac019ab7f77d607b67ac75367"
+ batch.kubernetes.io/controller-uid: "fa6466d9-20d6-4d9c-8cf0-cec2f4dc4efb"
+ batch.kubernetes.io/job-name : "[secret]-db-migration-7ac75367"
+ controller-uid : "fa6466d9-20d6-4d9c-8cf0-cec2f4dc4efb"
+ job-name : "[secret]-db-migration-7ac75367"
}
}
+ spec : {
+ containers : [
+ [0]: {
+ args : [
+ [0]: "node"
+ [1]: "./node_modules/typeorm/cli.js"
+ [2]: "migration:run"
+ [3]: "-d"
+ [4]: "src/data-source.js"
]
+ env : [
+ [0]: {
+ name : "OTEL_SERVICE_NAME"
+ value: "[secret]-db-migration"
}
+ [1]: {
+ name : "OTEL_SERVICE_VERSION"
+ value: "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
+ envFrom : [
+ [0]: {
+ secretRef: {
+ name: "[secret]"
}
}
]
+ image : "us.gcr.io/daily-ops/daily-[secret]:a6b8c60826db6cdac019ab7f77d607b67ac75367"
+ imagePullPolicy : "IfNotPresent"
+ name : "[secret]-db-migration"
+ resources : {}
+ terminationMessagePath : "/dev/termination-log"
+ terminationMessagePolicy: "File"
}
]
+ dnsPolicy : "ClusterFirst"
+ restartPolicy : "Never"
+ schedulerName : "default-scheduler"
+ securityContext : {}
+ serviceAccount : "[secret]"
+ serviceAccountName : "[secret]"
+ terminationGracePeriodSeconds: 30
+ tolerations : [
+ [0]: {
+ effect : "NoSchedule"
+ key : "spot"
+ operator: "Equal"
+ value : "true"
}
+ [1]: {
+ effect : "NoSchedule"
+ key : "preemptible"
+ operator: "Equal"
+ value : "true"
}
]
}
}
}
--outputs:--
+ metadata : {
+ creationTimestamp: "2026-07-24T10:23:10Z"
+ generation : 1
+ labels : {
+ app : "[secret]-clickhouse-migration"
+ app.kubernetes.io/name : "[secret]-clickhouse-migration"
+ app.kubernetes.io/version: "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
+ managedFields : [
+ [0]: {
+ apiVersion: "batch/v1"
+ fieldsType: "FieldsV1"
+ fieldsV1 : {
+ f:metadata: {
+ f:labels: {
+ f:app : {}
+ f:app.kubernetes.io/name : {}
+ f:app.kubernetes.io/version: {}
}
}
+ f:spec : {
+ f:completions: {}
+ f:template : {
+ f:metadata: {
+ f:labels: {
+ f:app : {}
+ f:app.kubernetes.io/name : {}
+ f:app.kubernetes.io/version: {}
}
}
+ f:spec : {
+ f:containers : {
+ k:{"name":"api-clickhouse-migration"}: {
+ . : {}
+ f:args : {}
+ f:env : {
+ k:{"name":"OTEL_SERVICE_NAME"} : {
+ . : {}
+ f:name : {}
+ f:value: {}
}
+ k:{"name":"OTEL_SERVICE_VERSION"}: {
+ . : {}
+ f:name : {}
+ f:value: {}
}
}
+ f:envFrom: {}
+ f:image : {}
+ f:name : {}
}
}
+ f:restartPolicy : {}
+ f:serviceAccountName: {}
}
}
}
}
+ manager : "pulumi-kubernetes-fe8fa3a8"
+ operation : "Apply"
+ time : "2026-07-24T10:23:10Z"
}
]
+ name : "[secret]-clickhouse-migration-7ac75367"
+ namespace : "daily"
+ uid : "10bd2dfe-d9aa-4eea-a715-34115091c2dc"
}
+ spec : {
+ backoffLimit : 6
+ completionMode : "NonIndexed"
+ completions : 1
+ manualSelector : false
+ parallelism : 1
+ podReplacementPolicy: "TerminatingOrFailed"
+ selector : {
+ matchLabels: {
+ batch.kubernetes.io/controller-uid: "10bd2dfe-d9aa-4eea-a715-34115091c2dc"
}
}
+ suspend : false
+ template : {
+ metadata: {
+ labels: {
+ app : "[secret]-clickhouse-migration"
+ app.kubernetes.io/name : "[secret]-clickhouse-migration"
+ app.kubernetes.io/version : "a6b8c60826db6cdac019ab7f77d607b67ac75367"
+ batch.kubernetes.io/controller-uid: "10bd2dfe-d9aa-4eea-a715-34115091c2dc"
+ batch.kubernetes.io/job-name : "[secret]-clickhouse-migration-7ac75367"
+ controller-uid : "10bd2dfe-d9aa-4eea-a715-34115091c2dc"
+ job-name : "[secret]-clickhouse-migration-7ac75367"
}
}
+ spec : {
+ containers : [
+ [0]: {
+ args : [
+ [0]: "node"
+ [1]: "./bin/runClickhouseMigrations.js"
]
+ env : [
+ [0]: {
+ name : "OTEL_SERVICE_NAME"
+ value: "[secret]-clickhouse-migration"
}
+ [1]: {
+ name : "OTEL_SERVICE_VERSION"
+ value: "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
+ envFrom : [
+ [0]: {
+ secretRef: {
+ name: "[secret]"
}
}
]
+ image : "us.gcr.io/daily-ops/daily-[secret]:a6b8c60826db6cdac019ab7f77d607b67ac75367"
+ imagePullPolicy : "IfNotPresent"
+ name : "[secret]-clickhouse-migration"
+ resources : {}
+ terminationMessagePath : "/dev/termination-log"
+ terminationMessagePolicy: "File"
}
]
+ dnsPolicy : "ClusterFirst"
+ restartPolicy : "Never"
+ schedulerName : "default-scheduler"
+ securityContext : {}
+ serviceAccount : "[secret]"
+ serviceAccountName : "[secret]"
+ terminationGracePeriodSeconds: 30
}
}
}
~ kubernetes:batch/v1:CronJob: (update)
[urn=urn:pulumi:prod::api::kubernetes:batch/v1:CronJob::vpc-native-clean-zombie-users-cron]
[provider=urn:pulumi:prod::api::dailydotdev:kubernetes:GkeCluster$pulumi:providers:kubernetes::vpc-native::fcfbd2f7-4f6b-44a5-b398-0533832a829e]
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ jobTemplate: {
~ spec: {
~ template: {
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ containers: [
~ [0]: {
~ env : [
~ [1]: {
~ value: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
~ image: "us.gcr.io/daily-ops/daily-[secret]:3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "us.gcr.io/daily-ops/daily-[secret]:a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
}
}
}
}
}
~ kubernetes:apps/v1:Deployment: (update)
[urn=urn:pulumi:prod::api::kubernetes:apps/v1:Deployment::vpc-native-bg-deployment]
[provider=urn:pulumi:prod::api::dailydotdev:kubernetes:GkeCluster$pulumi:providers:kubernetes::vpc-native::fcfbd2f7-4f6b-44a5-b398-0533832a829e]
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
~ version : "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ template: {
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ containers: [
~ [0]: {
~ env : [
~ [1]: {
~ value: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
~ image: "us.gcr.io/daily-ops/daily-[secret]:3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "us.gcr.io/daily-ops/daily-[secret]:a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
}
}
}
~ kubernetes:batch/v1:CronJob: (update)
[urn=urn:pulumi:prod::api::kubernetes:batch/v1:CronJob::vpc-native-update-views-cron]
[provider=urn:pulumi:prod::api::dailydotdev:kubernetes:GkeCluster$pulumi:providers:kubernetes::vpc-native::fcfbd2f7-4f6b-44a5-b398-0533832a829e]
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ jobTemplate: {
~ spec: {
~ template: {
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ containers: [
~ [0]: {
~ env : [
~ [1]: {
~ value: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
~ image: "us.gcr.io/daily-ops/daily-[secret]:3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "us.gcr.io/daily-ops/daily-[secret]:a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
}
}
}
}
}
~ kubernetes:batch/v1:CronJob: (update)
[urn=urn:pulumi:prod::api::kubernetes:batch/v1:CronJob::vpc-native-clean-zombie-user-companies-cron]
[provider=urn:pulumi:prod::api::dailydotdev:kubernetes:GkeCluster$pulumi:providers:kubernetes::vpc-native::fcfbd2f7-4f6b-44a5-b398-0533832a829e]
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ jobTemplate: {
~ spec: {
~ template: {
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ containers: [
~ [0]: {
~ env : [
~ [1]: {
~ value: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
~ image: "us.gcr.io/daily-ops/daily-[secret]:3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "us.gcr.io/daily-ops/daily-[secret]:a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
}
}
}
}
}
~ kubernetes:apps/v1:Deployment: (update)
[urn=urn:pulumi:prod::api::kubernetes:apps/v1:Deployment::vpc-native-ws-deployment]
[provider=urn:pulumi:prod::api::dailydotdev:kubernetes:GkeCluster$pulumi:providers:kubernetes::vpc-native::fcfbd2f7-4f6b-44a5-b398-0533832a829e]
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
~ version : "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ template: {
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ containers: [
~ [0]: {
~ env : [
~ [1]: {
~ value: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
~ image: "us.gcr.io/daily-ops/daily-[secret]:3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "us.gcr.io/daily-ops/daily-[secret]:a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
}
}
}
~ kubernetes:batch/v1:CronJob: (update)
[urn=urn:pulumi:prod::api::kubernetes:batch/v1:CronJob::vpc-native-calculate-top-readers-cron]
[provider=urn:pulumi:prod::api::dailydotdev:kubernetes:GkeCluster$pulumi:providers:kubernetes::vpc-native::fcfbd2f7-4f6b-44a5-b398-0533832a829e]
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ jobTemplate: {
~ spec: {
~ template: {
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ containers: [
~ [0]: {
~ env : [
~ [1]: {
~ value: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
~ image: "us.gcr.io/daily-ops/daily-[secret]:3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "us.gcr.io/daily-ops/daily-[secret]:a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
}
}
}
}
}
~ kubernetes:batch/v1:CronJob: (update)
[urn=urn:pulumi:prod::api::kubernetes:batch/v1:CronJob::vpc-native-update-tags-str-cron]
[provider=urn:pulumi:prod::api::dailydotdev:kubernetes:GkeCluster$pulumi:providers:kubernetes::vpc-native::fcfbd2f7-4f6b-44a5-b398-0533832a829e]
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ jobTemplate: {
~ spec: {
~ template: {
~ metadata: {
~ labels: {
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
~ containers: [
~ [0]: {
~ env : [
~ [1]: {
~ value: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
~ image: "us.gcr.io/daily-ops/daily-[secret]:3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "us.gcr.io/daily-ops/daily-[secret]:a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
]
}
}
}
}
}
--outputs:--
~ metadata : {
~ annotations : {
~ deployment.kubernetes.io/revision: "536" => "537"
}
creationTimestamp: "2026-02-21T12:18:27Z"
~ generation : 8772 => 8775
~ labels : {
app : "[secret]-bg"
app.kubernetes.io/name : "[secret]-bg"
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
~ version : "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
~ managedFields : [
~ [0]: {
apiVersion: "apps/v1"
fieldsType: "FieldsV1"
fieldsV1 : {
f:metadata: {
f:labels: {
f:app : {}
f:app.kubernetes.io/name : {}
f:app.kubernetes.io/version: {}
f:version : {}
}
}
f:spec : {
f:selector: {}
f:strategy: {
f:rollingUpdate: {
f:maxUnavailable: {}
}
f:type : {}
}
f:template: {
f:metadata: {
f:annotations: {
f:gke-gcsfuse/cpu-limit : {}
f:gke-gcsfuse/cpu-request : {}
f:gke-gcsfuse/memory-limit : {}
f:gke-gcsfuse/memory-request: {}
f:gke-gcsfuse/volumes : {}
}
f:labels : {
f:app : {}
f:app.kubernetes.io/name : {}
f:app.kubernetes.io/version: {}
}
}
f:spec : {
f:affinity : {
f:nodeAffinity: {
f:preferredDuringSchedulingIgnoredDuringExecution: {}
}
}
f:containers : {
k:{"name":"api-bg"}: {
. : {}
f:args : {}
f:env : {
k:{"name":"JWT_PRIVATE_KEY_PATH"}: {
. : {}
f:name : {}
f:value: {}
}
k:{"name":"JWT_PUBLIC_KEY_PATH"} : {
. : {}
f:name : {}
f:value: {}
}
k:{"name":"NODE_OPTIONS"} : {
. : {}
f:name : {}
f:value: {}
}
k:{"name":"OTEL_SERVICE_NAME"} : {
. : {}
f:name : {}
f:value: {}
}
k:{"name":"OTEL_SERVICE_VERSION"}: {
. : {}
f:name : {}
f:value: {}
}
}
f:envFrom : {}
f:image : {}
f:name : {}
f:ports : {
k:{"containerPort":9464,"protocol":"TCP"}: {
. : {}
f:containerPort: {}
f:name : {}
}
}
f:resources : {
f:limits : {
f:memory: {}
}
f:requests: {
f:cpu : {}
f:memory: {}
}
}
f:volumeMounts: {
k:{"mountPath":"/opt/app/apple"} : {
. : {}
f:mountPath: {}
f:name : {}
}
k:{"mountPath":"/opt/app/cert"} : {
. : {}
f:mountPath: {}
f:name : {}
}
k:{"mountPath":"/opt/app/temporal"}: {
. : {}
f:mountPath: {}
f:name : {}
}
k:{"mountPath":"/usr/share/geoip"} : {
. : {}
f:mountPath: {}
f:name : {}
f:readOnly : {}
}
}
}
}
f:serviceAccountName: {}
f:tolerations : {}
f:volumes : {
k:{"name":"apple-auth"}: {
. : {}
f:name : {}
f:secret: {
f:secretName: {}
}
}
k:{"name":"cert"} : {
. : {}
f:name : {}
f:secret: {
f:secretName: {}
}
}
k:{"name":"geoip-data"}: {
. : {}
f:csi : {
f:driver : {}
f:volumeAttributes: {
f:bucketName : {}
f:mountOptions: {}
}
}
f:name: {}
}
k:{"name":"temporal"} : {
. : {}
f:name : {}
f:secret: {
f:secretName: {}
}
}
}
}
}
}
}
manager : "pulumi-kubernetes-172d3f8a"
operation : "Apply"
~ time : "2026-07-24T09:25:29Z" => "2026-07-24T10:23:11Z"
}
~ [1]: {
apiVersion : "apps/v1"
fieldsType : "FieldsV1"
fieldsV1 : {
f:metadata: {
f:annotations: {
. : {}
f:deployment.kubernetes.io/revision: {}
}
}
f:status : {
f:availableReplicas : {}
f:conditions : {
. : {}
k:{"type":"Available"} : {
. : {}
f:lastTransitionTime: {}
f:lastUpdateTime : {}
f:message : {}
f:reason : {}
f:status : {}
f:type : {}
}
k:{"type":"Progressing"}: {
. : {}
f:lastTransitionTime: {}
f:lastUpdateTime : {}
f:message : {}
f:reason : {}
f:status : {}
f:type : {}
}
}
f:observedGeneration : {}
f:readyReplicas : {}
f:replicas : {}
f:terminatingReplicas: {}
f:updatedReplicas : {}
}
}
manager : "kube-controller-manager"
operation : "Update"
subresource: "status"
~ time : "2026-07-24T07:34:08Z" => "2026-07-24T10:13:43Z"
}
]
name : "[secret]-bg"
namespace : "daily"
~ resourceVersion : "1784885129265999000" => "1784888023108719000"
uid : "44525505-0333-42e7-8c30-9d44ed104a0b"
}
~ spec : {
progressDeadlineSeconds: 600
replicas : 2
revisionHistoryLimit : 10
selector : {
matchLabels: {
app : "[secret]-bg"
app.kubernetes.io/name: "[secret]-bg"
}
}
strategy : {
rollingUpdate: {
maxSurge : "25%"
maxUnavailable: 1
}
type : "RollingUpdate"
}
~ template : {
~ metadata: {
annotations: {
gke-gcsfuse/cpu-limit : "0"
gke-gcsfuse/cpu-request : "10m"
gke-gcsfuse/memory-limit : "0"
gke-gcsfuse/memory-request: "32Mi"
gke-gcsfuse/volumes : "true"
}
~ labels : {
app : "[secret]-bg"
app.kubernetes.io/name : "[secret]-bg"
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
}
~ spec : {
affinity : {
nodeAffinity: {
preferredDuringSchedulingIgnoredDuringExecution: [
[0]: {
preference: {
matchExpressions: [
[0]: {
key : "node.daily.dev/spot"
operator: "Exists"
}
]
}
weight : 1
}
[1]: {
preference: {
matchExpressions: [
[0]: {
key : "node.daily.dev/preemptible"
operator: "Exists"
}
]
}
weight : 1
}
]
}
}
~ containers : [
~ [0]: {
args : [
[0]: "dumb-init"
[1]: "node"
[2]: "--require"
[3]: "./src/telemetry/register.js"
[4]: "bin/cli"
[5]: "background"
]
~ env : [
[0]: {
name : "OTEL_SERVICE_NAME"
value: "[secret]-bg"
}
~ [1]: {
name : "OTEL_SERVICE_VERSION"
~ value: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
[2]: {
name : "NODE_OPTIONS"
value: "--max-old-space-size=460"
}
[3]: {
name : "JWT_PUBLIC_KEY_PATH"
value: "/opt/app/cert/public.pem"
}
[4]: {
name : "JWT_PRIVATE_KEY_PATH"
value: "/opt/app/cert/key.pem"
}
]
envFrom : [
[0]: {
secretRef: {
name: "[secret]"
}
}
]
~ image : "us.gcr.io/daily-ops/daily-[secret]:3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "us.gcr.io/daily-ops/daily-[secret]:a6b8c60826db6cdac019ab7f77d607b67ac75367"
imagePullPolicy : "IfNotPresent"
name : "[secret]-bg"
ports : [
[0]: {
containerPort: 9464
name : "metrics"
protocol : "TCP"
}
]
resources : {
limits : {
memory: "512Mi"
}
requests: {
cpu : "50m"
memory: "256Mi"
}
}
terminationMessagePath : "/dev/termination-log"
terminationMessagePolicy: "File"
volumeMounts : [
[0]: {
mountPath: "/opt/app/cert"
name : "cert"
}
[1]: {
mountPath: "/opt/app/temporal"
name : "temporal"
}
[2]: {
mountPath: "/opt/app/apple"
name : "apple-auth"
}
[3]: {
mountPath: "/usr/share/geoip"
name : "geoip-data"
readOnly : true
}
]
}
]
dnsPolicy : "ClusterFirst"
restartPolicy : "Always"
schedulerName : "default-scheduler"
serviceAccount : "[secret]"
serviceAccountName : "[secret]"
terminationGracePeriodSeconds: 30
tolerations : [
[0]: {
effect : "NoSchedule"
key : "spot"
operator: "Equal"
value : "true"
}
[1]: {
effect : "NoSchedule"
key : "preemptible"
operator: "Equal"
value : "true"
}
]
volumes : [
[0]: {
name : "cert"
secret: {
defaultMode: 420
secretName : "cert-secret"
}
}
[1]: {
name : "temporal"
secret: {
defaultMode: 420
secretName : "temporal-secret"
}
}
[2]: {
name : "apple-auth"
secret: {
defaultMode: 420
secretName : "apple-auth-secret"
}
}
[3]: {
csi : {
driver : "gcsfuse.csi.storage.gke.io"
volumeAttributes: {
bucketName : "geoipupdate-storage"
mountOptions: "implicit-dirs"
}
}
name: "geoip-data"
}
]
}
}
}
~ status : {
availableReplicas : 2
~ conditions : [
~ [0]: {
~ lastTransitionTime: "2026-02-21T12:18:27Z" => "2026-07-24T06:32:52Z"
~ lastUpdateTime : "2026-07-23T10:13:21Z" => "2026-07-24T06:32:52Z"
~ message : "ReplicaSet \"[secret]-bg-98ddf4c67\" has successfully progressed." => "Deployment has minimum availability."
~ reason : "NewReplicaSetAvailable" => "MinimumReplicasAvailable"
status : "True"
~ type : "Progressing" => "Available"
}
~ [1]: {
~ lastTransitionTime: "2026-07-24T06:32:52Z" => "2026-02-21T12:18:27Z"
~ lastUpdateTime : "2026-07-24T06:32:52Z" => "2026-07-24T09:25:35Z"
~ message : "Deployment has minimum availability." => "ReplicaSet \"[secret]-bg-6df688fcd9\" has successfully progressed."
~ reason : "MinimumReplicasAvailable" => "NewReplicaSetAvailable"
status : "True"
~ type : "Available" => "Progressing"
}
]
~ observedGeneration : 8771 => 8774
readyReplicas : 2
replicas : 2
terminatingReplicas: 0
updatedReplicas : 2
}
--outputs:--
~ metadata : {
creationTimestamp: "2026-02-21T12:17:57Z"
~ generation : 539 => 540
~ labels : {
app : "[secret]-clean-zombie-users"
app-type : "cron"
app.kubernetes.io/name : "[secret]-clean-zombie-users"
~ app.kubernetes.io/version: "3271bcc466b9e2327e1e6f7f76f4207b5ff3281e" => "a6b8c60826db6cdac019ab7f77d607b67ac75367"
}
~ managedFields : [
~ [0]: {
apiVersion: "batch/v1"
fieldsType: "FieldsV1"
fieldsV1 : {
f:metadata: {
f:labels: {
f:app : {}
f:app-type : {}
f:app.kubernetes.io/name : {}
f:app.kubernetes.io/version: {}
}
}
f:spec : {
f:concurrencyPolicy : {}
f:failedJobsHistoryLimit : {}
f:jobTemplate : {
f:spec: {
f:activeDeadlineSeconds: {}
f:template : {
f:metadata: {
f:annotations: {
f:gke-gcsfuse/cpu-limit : {}
f:gke-gcsfuse/cpu-request : {}
f:gke-gcsfuse/memory-limit : {}
f:gke-gcsfuse/memory-request: {}
f:gke-gcsfuse/volumes : {}
}
f:labels : {
f:app : {}
f:app-type : {}
f:app.kubernetes.io/name : {}
f:app.kubernetes.io/version: {}
}
}
f:spec : {
f:affinity : {
f:nodeAffinity: {
f:preferredDuringSchedulingIgnoredDuringExecution: {}
}
}
f:containers : {
k:{"name":"api-clean-zombie-users"}: {
. : {}
f:args : {}
f:env : {
k:{"name":"OTEL_SERVICE_NAME"} : {
. : {}
f:name : {}
f:value: {}
}
k:{"name":"OTEL_SERVICE_VERSION"}: {
. : {}
f:name : {}
f:value: {}
}
}
f:envFrom : {}
f:image : {}
f:name : {}
f:resources : {
f:limits : {
f:memory: {}
}
f:requests: {
f:cpu : {}
f:memory: {}
}
}
f:volumeMounts: {
k:{"mountPath":"/opt/app/apple"} : {
. : {}
f:mountPath: {}
f:name : {}
}
k:{"mountPath":"/opt/app/cert"} : {
. : {}
f:mountPath: {}
f:name : {}
}
k:{"mountPath":"/opt/app/temporal"}: {
. : {}
f:mountPath: {}
f:name : {}
}
k:{"mountPath":"/usr/share/geoip"} : {
---
*Output truncated. View full details in the Pulumi Console.*
Loading