From 33ac4dd42603d82037a93f33074790d9bee15d75 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 17 Jul 2026 13:48:34 +0200 Subject: [PATCH] feat: add isolated development runtime --- .tekton/sub2rank-development-nc01-pac.yaml | 483 +++++++++++++++++++++ config/sub2rank.yaml | 26 ++ 2 files changed, 509 insertions(+) create mode 100644 .tekton/sub2rank-development-nc01-pac.yaml diff --git a/.tekton/sub2rank-development-nc01-pac.yaml b/.tekton/sub2rank-development-nc01-pac.yaml new file mode 100644 index 0000000..c66e4d1 --- /dev/null +++ b/.tekton/sub2rank-development-nc01-pac.yaml @@ -0,0 +1,483 @@ +apiVersion: tekton.dev/v1 +kind: PipelineRun +metadata: + name: "sub2rank-development-nc01-{{ revision }}" + namespace: devops-infra + annotations: + pipelinesascode.tekton.dev/on-event: "[push]" + pipelinesascode.tekton.dev/on-target-branch: "[development]" + pipelinesascode.tekton.dev/on-cel-expression: "event == 'push' && target_branch == 'development' && node == 'NC01'" + pipelinesascode.tekton.dev/max-keep-runs: "8" + unidesk.ai/pac-admission-provenance: admission-pac-v2:platform-infra-sub2rank-development-nc01 + unidesk.ai/owning-config-ref: "config/platform-infra/sub2rank.yaml#delivery.profiles.development" + unidesk.ai/effective-config-sha256: sha256:074719afc0d3f5a0cc371df88d65cbe6341ee4ef3378818ce7c5dde6d191412f + unidesk.ai/source-artifact-renderer: sub2rank-platform-service + unidesk.ai/source-artifact-mode: embedded-pipeline-spec + labels: + app.kubernetes.io/name: sub2rank + app.kubernetes.io/part-of: platform-infra + unidesk.ai/node: NC01 + unidesk.ai/source-commit: "{{ revision }}" + unidesk.ai/trigger: pipelines-as-code +spec: + timeouts: + pipeline: 600s + pipelineSpec: + params: + - name: git-read-url + type: string + default: http://gitea-http.devops-infra.svc.cluster.local:3000/mirrors/pikasTech-apistate-development.git + - name: source-branch + type: string + default: development + - name: revision + type: string + - name: source-stage-ref + type: string + - name: config-path + type: string + default: config/sub2rank.yaml + - name: dockerfile + type: string + default: Dockerfile + - name: image-repository + type: string + default: 127.0.0.1:5000/sub2rank/sub2rank + - name: tools-image + type: string + default: 127.0.0.1:5000/hwlab/hwlab-ci-node-tools:node22-alpine-bun-v1 + - name: buildkit-image + type: string + default: 127.0.0.1:5000/hwlab/buildkit:rootless + - name: build-network + type: string + default: host + - name: build-http-proxy + type: string + default: http://127.0.0.1:10808 + - name: build-https-proxy + type: string + default: http://127.0.0.1:10808 + - name: build-all-proxy + type: string + default: http://127.0.0.1:10808 + - name: build-no-proxy + type: string + default: "localhost,127.0.0.1,::1,127.0.0.1:5000,localhost:5000,.svc,.svc.cluster.local,.cluster.local,hyueapi.com,.hyueapi.com" + - name: gitops-read-url + type: string + default: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/unidesk.git + - name: gitops-write-url + type: string + default: http://git-mirror-write.devops-infra.svc.cluster.local:8080/pikasTech/unidesk.git + - name: gitops-branch + type: string + default: unidesk-host-gitops + - name: gitops-manifest-path + type: string + default: deploy/gitops/platform-infra/sub2rank-development-nc01/resources.yaml + - name: gitops-release-state-path + type: string + default: deploy/gitops-state/platform-infra/sub2rank-development-nc01.json + - name: gitops-max-push-attempts + type: string + default: "3" + - name: gitops-author-name + type: string + default: UniDesk Sub2Rank CI + - name: gitops-author-email + type: string + default: sub2rank-ci@unidesk.local + - name: manifest-template-b64 + type: string + default: YXBpVmVyc2lvbjogdjEKa2luZDogTmFtZXNwYWNlCm1ldGFkYXRhOgogIG5hbWU6IHBsYXRmb3JtLWluZnJhLWRldmVsb3BtZW50CiAgbGFiZWxzOgogICAgYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieTogdW5pZGVzawotLS0KYXBpVmVyc2lvbjogbmV0d29ya2luZy5rOHMuaW8vdjEKa2luZDogTmV0d29ya1BvbGljeQptZXRhZGF0YToKICBuYW1lOiBhbGxvdy1hbGwKICBuYW1lc3BhY2U6IHBsYXRmb3JtLWluZnJhLWRldmVsb3BtZW50CnNwZWM6CiAgcG9kU2VsZWN0b3I6IHt9CiAgcG9saWN5VHlwZXM6CiAgICAtIEluZ3Jlc3MKICAgIC0gRWdyZXNzCiAgaW5ncmVzczoKICAgIC0ge30KICBlZ3Jlc3M6CiAgICAtIHt9Ci0tLQphcGlWZXJzaW9uOiB2MQpraW5kOiBDb25maWdNYXAKbWV0YWRhdGE6CiAgbmFtZTogc3ViMnJhbmstY29uZmlnCiAgbmFtZXNwYWNlOiBwbGF0Zm9ybS1pbmZyYS1kZXZlbG9wbWVudAogIGxhYmVsczoKICAgIGFwcC5rdWJlcm5ldGVzLmlvL25hbWU6IHN1YjJyYW5rCiAgICBhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBwbGF0Zm9ybS1pbmZyYQogICAgYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieTogdW5pZGVzawpiaW5hcnlEYXRhOgogIHN1YjJyYW5rLnlhbWw6ICJfX1NVQjJSQU5LX0NPTkZJR19CQVNFNjRfXyIKLS0tCmFwaVZlcnNpb246IHYxCmtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbQptZXRhZGF0YToKICBuYW1lOiBzdWIycmFuay1kYXRhCiAgbmFtZXNwYWNlOiBwbGF0Zm9ybS1pbmZyYS1kZXZlbG9wbWVudAogIGxhYmVsczoKICAgIGFwcC5rdWJlcm5ldGVzLmlvL25hbWU6IHN1YjJyYW5rCiAgICBhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBwbGF0Zm9ybS1pbmZyYQogICAgYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieTogdW5pZGVzawpzcGVjOgogIGFjY2Vzc01vZGVzOgogICAgLSBSZWFkV3JpdGVPbmNlCiAgcmVzb3VyY2VzOgogICAgcmVxdWVzdHM6CiAgICAgIHN0b3JhZ2U6IDFHaQotLS0KYXBpVmVyc2lvbjogdjEKa2luZDogU2VydmljZQptZXRhZGF0YToKICBuYW1lOiBzdWIycmFuawogIG5hbWVzcGFjZTogcGxhdGZvcm0taW5mcmEtZGV2ZWxvcG1lbnQKICBsYWJlbHM6CiAgICBhcHAua3ViZXJuZXRlcy5pby9uYW1lOiBzdWIycmFuawogICAgYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogcGxhdGZvcm0taW5mcmEKICAgIGFwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnk6IHVuaWRlc2sKc3BlYzoKICB0eXBlOiBDbHVzdGVySVAKICBzZWxlY3RvcjoKICAgIGFwcC5rdWJlcm5ldGVzLmlvL25hbWU6IHN1YjJyYW5rCiAgcG9ydHM6CiAgICAtIG5hbWU6IGh0dHAKICAgICAgcG9ydDogODA4MAogICAgICB0YXJnZXRQb3J0OiBodHRwCi0tLQphcGlWZXJzaW9uOiBhcHBzL3YxCmtpbmQ6IERlcGxveW1lbnQKbWV0YWRhdGE6CiAgbmFtZTogc3ViMnJhbmsKICBuYW1lc3BhY2U6IHBsYXRmb3JtLWluZnJhLWRldmVsb3BtZW50CiAgbGFiZWxzOgogICAgYXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogc3ViMnJhbmsKICAgIGFwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IHBsYXRmb3JtLWluZnJhCiAgICBhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5OiB1bmlkZXNrCnNwZWM6CiAgcmVwbGljYXM6IDEKICBzdHJhdGVneToKICAgIHR5cGU6IFJlY3JlYXRlCiAgc2VsZWN0b3I6CiAgICBtYXRjaExhYmVsczoKICAgICAgYXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogc3ViMnJhbmsKICB0ZW1wbGF0ZToKICAgIG1ldGFkYXRhOgogICAgICBsYWJlbHM6CiAgICAgICAgYXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogc3ViMnJhbmsKICAgICAgICBhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBwbGF0Zm9ybS1pbmZyYQogICAgICBhbm5vdGF0aW9uczoKICAgICAgICB1bmlkZXNrLmFpL3N1YjJyYW5rLWNvbmZpZy1zaGEyNTY6ICJfX1NVQjJSQU5LX0NPTkZJR19TSEEyNTZfXyIKICAgICAgICB1bmlkZXNrLmFpL3N1YjJyYW5rLWRlcGxveW1lbnQtaGFzaDogIjY5ZTc2OTE1MTIwMDc4ODMiCiAgICAgICAgdW5pZGVzay5haS9zb3VyY2UtY29tbWl0OiAiX19TVUIyUkFOS19TT1VSQ0VfQ09NTUlUX18iCiAgICAgICAgdW5pZGVzay5haS9wdWJsaWMtYmFzZS11cmw6ICJodHRwczovL2FwaXN0YXRlLWRldmVsb3BtZW50LmludmFsaWQiCiAgICBzcGVjOgogICAgICBzZWN1cml0eUNvbnRleHQ6CiAgICAgICAgZnNHcm91cDogMTAwMAogICAgICBjb250YWluZXJzOgogICAgICAgIC0gbmFtZTogc3ViMnJhbmsKICAgICAgICAgIGltYWdlOiAiX19TVUIyUkFOS19JTUFHRV9SRUZfXyIKICAgICAgICAgIGltYWdlUHVsbFBvbGljeTogSWZOb3RQcmVzZW50CiAgICAgICAgICBjb21tYW5kOgogICAgICAgICAgICAtICJidW4iCiAgICAgICAgICAgIC0gInNyYy9hcGkudHMiCiAgICAgICAgICAgIC0gIi0tY29uZmlnIgogICAgICAgICAgICAtICIvZXRjL3N1YjJyYW5rL3N1YjJyYW5rLnlhbWwiCiAgICAgICAgICAgIC0gIi0tcnVudGltZSIKICAgICAgICAgICAgLSAiZGV2ZWxvcG1lbnQiCiAgICAgICAgICBwb3J0czoKICAgICAgICAgICAgLSBuYW1lOiBodHRwCiAgICAgICAgICAgICAgY29udGFpbmVyUG9ydDogODA4MAogICAgICAgICAgZW52OgogICAgICAgICAgICAtIG5hbWU6IEFQSVNUQVRFX1dFQl9QQVNTV09SRAogICAgICAgICAgICAgIHZhbHVlRnJvbToKICAgICAgICAgICAgICAgIHNlY3JldEtleVJlZjoKICAgICAgICAgICAgICAgICAgbmFtZTogc3ViMnJhbmstc2VjcmV0cwogICAgICAgICAgICAgICAgICBrZXk6IEFQSVNUQVRFX1dFQl9QQVNTV09SRAogICAgICAgICAgICAtIG5hbWU6IEFQSVNUQVRFX0FQSV9LRVkKICAgICAgICAgICAgICB2YWx1ZUZyb206CiAgICAgICAgICAgICAgICBzZWNyZXRLZXlSZWY6CiAgICAgICAgICAgICAgICAgIG5hbWU6IHN1YjJyYW5rLXNlY3JldHMKICAgICAgICAgICAgICAgICAga2V5OiBBUElTVEFURV9BUElfS0VZCiAgICAgICAgICAgIC0gbmFtZTogQVBJU1RBVEVfU0VTU0lPTl9TRUNSRVQKICAgICAgICAgICAgICB2YWx1ZUZyb206CiAgICAgICAgICAgICAgICBzZWNyZXRLZXlSZWY6CiAgICAgICAgICAgICAgICAgIG5hbWU6IHN1YjJyYW5rLXNlY3JldHMKICAgICAgICAgICAgICAgICAga2V5OiBBUElTVEFURV9TRVNTSU9OX1NFQ1JFVAogICAgICAgICAgICAtIG5hbWU6IFNVQjJBUElfQURNSU5fRU1BSUwKICAgICAgICAgICAgICB2YWx1ZUZyb206CiAgICAgICAgICAgICAgICBzZWNyZXRLZXlSZWY6CiAgICAgICAgICAgICAgICAgIG5hbWU6IHN1YjJyYW5rLXNlY3JldHMKICAgICAgICAgICAgICAgICAga2V5OiBTVUIyQVBJX0FETUlOX0VNQUlMCiAgICAgICAgICAgIC0gbmFtZTogU1VCMkFQSV9BRE1JTl9QQVNTV09SRAogICAgICAgICAgICAgIHZhbHVlRnJvbToKICAgICAgICAgICAgICAgIHNlY3JldEtleVJlZjoKICAgICAgICAgICAgICAgICAgbmFtZTogc3ViMnJhbmstc2VjcmV0cwogICAgICAgICAgICAgICAgICBrZXk6IFNVQjJBUElfQURNSU5fUEFTU1dPUkQKICAgICAgICAgICAgLSBuYW1lOiBBUElTVEFURV9URU1QT1JBTF9BRERSRVNTCiAgICAgICAgICAgICAgdmFsdWU6ICJ0ZW1wb3JhbC1mcm9udGVuZC50ZW1wb3JhbC5zdmMuY2x1c3Rlci5sb2NhbDo3MjMzIgogICAgICAgICAgcmVhZGluZXNzUHJvYmU6CiAgICAgICAgICAgIGh0dHBHZXQ6CiAgICAgICAgICAgICAgcGF0aDogL2hlYWx0aAogICAgICAgICAgICAgIHBvcnQ6IGh0dHAKICAgICAgICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogMwogICAgICAgICAgICBwZXJpb2RTZWNvbmRzOiAxMAogICAgICAgICAgICB0aW1lb3V0U2Vjb25kczogMwogICAgICAgICAgICBmYWlsdXJlVGhyZXNob2xkOiA2CiAgICAgICAgICBsaXZlbmVzc1Byb2JlOgogICAgICAgICAgICBodHRwR2V0OgogICAgICAgICAgICAgIHBhdGg6IC9oZWFsdGgKICAgICAgICAgICAgICBwb3J0OiBodHRwCiAgICAgICAgICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDMKICAgICAgICAgICAgcGVyaW9kU2Vjb25kczogMTAKICAgICAgICAgICAgdGltZW91dFNlY29uZHM6IDMKICAgICAgICAgICAgZmFpbHVyZVRocmVzaG9sZDogNgogICAgICAgICAgdm9sdW1lTW91bnRzOgogICAgICAgICAgICAtIG5hbWU6IGFwcC1jb25maWcKICAgICAgICAgICAgICBtb3VudFBhdGg6IC9ldGMvc3ViMnJhbmsvc3ViMnJhbmsueWFtbAogICAgICAgICAgICAgIHN1YlBhdGg6IHN1YjJyYW5rLnlhbWwKICAgICAgICAgICAgICByZWFkT25seTogdHJ1ZQogICAgICAgICAgICAtIG5hbWU6IGRhdGEKICAgICAgICAgICAgICBtb3VudFBhdGg6IC92YXIvbGliL3N1YjJyYW5rCiAgICAgICAgICAgIC0gbmFtZTogaG9zdC1zb3VyY2UtMAogICAgICAgICAgICAgIG1vdW50UGF0aDogL29wdC91bmlkZXNrCiAgICAgICAgICAgICAgcmVhZE9ubHk6IHRydWUKICAgICAgdm9sdW1lczoKICAgICAgICAtIG5hbWU6IGFwcC1jb25maWcKICAgICAgICAgIGNvbmZpZ01hcDoKICAgICAgICAgICAgbmFtZTogc3ViMnJhbmstY29uZmlnCiAgICAgICAgLSBuYW1lOiBkYXRhCiAgICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06CiAgICAgICAgICAgIGNsYWltTmFtZTogc3ViMnJhbmstZGF0YQogICAgICAgIC0gbmFtZTogaG9zdC1zb3VyY2UtMAogICAgICAgICAgaG9zdFBhdGg6CiAgICAgICAgICAgIHBhdGg6IC9yb290L3VuaWRlc2sKICAgICAgICAgICAgdHlwZTogRGlyZWN0b3J5Ci0tLQphcGlWZXJzaW9uOiBhcHBzL3YxCmtpbmQ6IERlcGxveW1lbnQKbWV0YWRhdGE6CiAgbmFtZTogc3ViMnJhbmstd29ya2VyCiAgbmFtZXNwYWNlOiBwbGF0Zm9ybS1pbmZyYS1kZXZlbG9wbWVudAogIGxhYmVsczoKICAgIGFwcC5rdWJlcm5ldGVzLmlvL25hbWU6IHN1YjJyYW5rLXdvcmtlcgogICAgYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogcGxhdGZvcm0taW5mcmEKICAgIGFwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnk6IHVuaWRlc2sKc3BlYzoKICByZXBsaWNhczogMQogIHN0cmF0ZWd5OgogICAgdHlwZTogUmVjcmVhdGUKICBzZWxlY3RvcjoKICAgIG1hdGNoTGFiZWxzOgogICAgICBhcHAua3ViZXJuZXRlcy5pby9uYW1lOiBzdWIycmFuay13b3JrZXIKICB0ZW1wbGF0ZToKICAgIG1ldGFkYXRhOgogICAgICBsYWJlbHM6CiAgICAgICAgYXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogc3ViMnJhbmstd29ya2VyCiAgICAgICAgYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogcGxhdGZvcm0taW5mcmEKICAgICAgYW5ub3RhdGlvbnM6CiAgICAgICAgdW5pZGVzay5haS9zdWIycmFuay1jb25maWctc2hhMjU2OiAiX19TVUIyUkFOS19DT05GSUdfU0hBMjU2X18iCiAgICAgICAgdW5pZGVzay5haS9zdWIycmFuay1kZXBsb3ltZW50LWhhc2g6ICI2OWU3NjkxNTEyMDA3ODgzIgogICAgICAgIHVuaWRlc2suYWkvc291cmNlLWNvbW1pdDogIl9fU1VCMlJBTktfU09VUkNFX0NPTU1JVF9fIgogICAgc3BlYzoKICAgICAgc2VjdXJpdHlDb250ZXh0OgogICAgICAgIGZzR3JvdXA6IDEwMDAKICAgICAgY29udGFpbmVyczoKICAgICAgICAtIG5hbWU6IHN1YjJyYW5rLXdvcmtlcgogICAgICAgICAgaW1hZ2U6ICJfX1NVQjJSQU5LX0lNQUdFX1JFRl9fIgogICAgICAgICAgaW1hZ2VQdWxsUG9saWN5OiBJZk5vdFByZXNlbnQKICAgICAgICAgIGNvbW1hbmQ6CiAgICAgICAgICAgIC0gImJ1biIKICAgICAgICAgICAgLSAic3JjL3dvcmtlci50cyIKICAgICAgICAgICAgLSAiLS1jb25maWciCiAgICAgICAgICAgIC0gIi9ldGMvc3ViMnJhbmsvc3ViMnJhbmsueWFtbCIKICAgICAgICAgICAgLSAiLS1ydW50aW1lIgogICAgICAgICAgICAtICJkZXZlbG9wbWVudCIKICAgICAgICAgIHBvcnRzOgogICAgICAgICAgICAtIG5hbWU6IGhlYWx0aAogICAgICAgICAgICAgIGNvbnRhaW5lclBvcnQ6IDgwODEKICAgICAgICAgIGVudjoKICAgICAgICAgICAgLSBuYW1lOiBBUElTVEFURV9XRUJfUEFTU1dPUkQKICAgICAgICAgICAgICB2YWx1ZUZyb206CiAgICAgICAgICAgICAgICBzZWNyZXRLZXlSZWY6CiAgICAgICAgICAgICAgICAgIG5hbWU6IHN1YjJyYW5rLXNlY3JldHMKICAgICAgICAgICAgICAgICAga2V5OiBBUElTVEFURV9XRUJfUEFTU1dPUkQKICAgICAgICAgICAgLSBuYW1lOiBBUElTVEFURV9BUElfS0VZCiAgICAgICAgICAgICAgdmFsdWVGcm9tOgogICAgICAgICAgICAgICAgc2VjcmV0S2V5UmVmOgogICAgICAgICAgICAgICAgICBuYW1lOiBzdWIycmFuay1zZWNyZXRzCiAgICAgICAgICAgICAgICAgIGtleTogQVBJU1RBVEVfQVBJX0tFWQogICAgICAgICAgICAtIG5hbWU6IEFQSVNUQVRFX1NFU1NJT05fU0VDUkVUCiAgICAgICAgICAgICAgdmFsdWVGcm9tOgogICAgICAgICAgICAgICAgc2VjcmV0S2V5UmVmOgogICAgICAgICAgICAgICAgICBuYW1lOiBzdWIycmFuay1zZWNyZXRzCiAgICAgICAgICAgICAgICAgIGtleTogQVBJU1RBVEVfU0VTU0lPTl9TRUNSRVQKICAgICAgICAgICAgLSBuYW1lOiBTVUIyQVBJX0FETUlOX0VNQUlMCiAgICAgICAgICAgICAgdmFsdWVGcm9tOgogICAgICAgICAgICAgICAgc2VjcmV0S2V5UmVmOgogICAgICAgICAgICAgICAgICBuYW1lOiBzdWIycmFuay1zZWNyZXRzCiAgICAgICAgICAgICAgICAgIGtleTogU1VCMkFQSV9BRE1JTl9FTUFJTAogICAgICAgICAgICAtIG5hbWU6IFNVQjJBUElfQURNSU5fUEFTU1dPUkQKICAgICAgICAgICAgICB2YWx1ZUZyb206CiAgICAgICAgICAgICAgICBzZWNyZXRLZXlSZWY6CiAgICAgICAgICAgICAgICAgIG5hbWU6IHN1YjJyYW5rLXNlY3JldHMKICAgICAgICAgICAgICAgICAga2V5OiBTVUIyQVBJX0FETUlOX1BBU1NXT1JECiAgICAgICAgICAgIC0gbmFtZTogQVBJU1RBVEVfVEVNUE9SQUxfQUREUkVTUwogICAgICAgICAgICAgIHZhbHVlOiAidGVtcG9yYWwtZnJvbnRlbmQudGVtcG9yYWwuc3ZjLmNsdXN0ZXIubG9jYWw6NzIzMyIKICAgICAgICAgIHJlYWRpbmVzc1Byb2JlOgogICAgICAgICAgICBodHRwR2V0OgogICAgICAgICAgICAgIHBhdGg6IC9oZWFsdGgKICAgICAgICAgICAgICBwb3J0OiBoZWFsdGgKICAgICAgICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogMwogICAgICAgICAgICBwZXJpb2RTZWNvbmRzOiAxMAogICAgICAgICAgICB0aW1lb3V0U2Vjb25kczogMwogICAgICAgICAgICBmYWlsdXJlVGhyZXNob2xkOiA2CiAgICAgICAgICBsaXZlbmVzc1Byb2JlOgogICAgICAgICAgICBodHRwR2V0OgogICAgICAgICAgICAgIHBhdGg6IC9oZWFsdGgKICAgICAgICAgICAgICBwb3J0OiBoZWFsdGgKICAgICAgICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogMwogICAgICAgICAgICBwZXJpb2RTZWNvbmRzOiAxMAogICAgICAgICAgICB0aW1lb3V0U2Vjb25kczogMwogICAgICAgICAgICBmYWlsdXJlVGhyZXNob2xkOiA2CiAgICAgICAgICB2b2x1bWVNb3VudHM6CiAgICAgICAgICAgIC0gbmFtZTogYXBwLWNvbmZpZwogICAgICAgICAgICAgIG1vdW50UGF0aDogL2V0Yy9zdWIycmFuay9zdWIycmFuay55YW1sCiAgICAgICAgICAgICAgc3ViUGF0aDogc3ViMnJhbmsueWFtbAogICAgICAgICAgICAgIHJlYWRPbmx5OiB0cnVlCiAgICAgICAgICAgIC0gbmFtZTogZGF0YQogICAgICAgICAgICAgIG1vdW50UGF0aDogL3Zhci9saWIvc3ViMnJhbmsKICAgICAgICAgICAgLSBuYW1lOiBob3N0LXNvdXJjZS0wCiAgICAgICAgICAgICAgbW91bnRQYXRoOiAvb3B0L3VuaWRlc2sKICAgICAgICAgICAgICByZWFkT25seTogdHJ1ZQogICAgICB2b2x1bWVzOgogICAgICAgIC0gbmFtZTogYXBwLWNvbmZpZwogICAgICAgICAgY29uZmlnTWFwOgogICAgICAgICAgICBuYW1lOiBzdWIycmFuay1jb25maWcKICAgICAgICAtIG5hbWU6IGRhdGEKICAgICAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbToKICAgICAgICAgICAgY2xhaW1OYW1lOiBzdWIycmFuay1kYXRhCiAgICAgICAgLSBuYW1lOiBob3N0LXNvdXJjZS0wCiAgICAgICAgICBob3N0UGF0aDoKICAgICAgICAgICAgcGF0aDogL3Jvb3QvdW5pZGVzawogICAgICAgICAgICB0eXBlOiBEaXJlY3RvcnkK + workspaces: + - name: source + tasks: + - name: source-validate + workspaces: + - name: source + workspace: source + taskSpec: + params: + - name: git-read-url + - name: source-branch + - name: revision + - name: source-stage-ref + - name: config-path + - name: dockerfile + - name: image-repository + - name: tools-image + - name: buildkit-image + - name: build-network + - name: build-http-proxy + - name: build-https-proxy + - name: build-all-proxy + - name: build-no-proxy + - name: gitops-read-url + - name: gitops-write-url + - name: gitops-branch + - name: gitops-manifest-path + - name: gitops-release-state-path + - name: gitops-max-push-attempts + - name: gitops-author-name + - name: gitops-author-email + - name: manifest-template-b64 + workspaces: + - name: source + steps: + - name: checkout-and-cli-validate + image: $(params.tools-image) + imagePullPolicy: IfNotPresent + env: + - name: HTTP_PROXY + value: $(params.build-http-proxy) + - name: http_proxy + value: $(params.build-http-proxy) + - name: HTTPS_PROXY + value: $(params.build-https-proxy) + - name: https_proxy + value: $(params.build-https-proxy) + - name: ALL_PROXY + value: $(params.build-all-proxy) + - name: all_proxy + value: $(params.build-all-proxy) + - name: NO_PROXY + value: $(params.build-no-proxy) + - name: no_proxy + value: $(params.build-no-proxy) + script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nrm -rf \"$root/repo\"\ngit clone --filter=blob:none --no-checkout \"$(params.git-read-url)\" \"$root/repo\"\ncd \"$root/repo\"\ngit fetch --depth=1 --filter=blob:none origin \"+$(params.source-stage-ref):refs/remotes/origin/sub2rank-source-snapshot\"\ngit checkout --detach \"$(params.revision)\"\ntest \"$(git rev-parse HEAD)\" = \"$(params.revision)\"\nbun install --frozen-lockfile\nbun scripts/apistate-cli.ts --config \"$(params.config-path)\" config validate\nchmod -R a+rX,g+rwX \"$root/repo\"\nprintf '{\"ok\":true,\"phase\":\"source-validate\",\"sourceCommit\":\"%s\",\"configPath\":\"%s\",\"valuesPrinted\":false}\\n' \"$(params.revision)\" \"$(params.config-path)\"" + params: + - name: git-read-url + value: $(params.git-read-url) + - name: source-branch + value: $(params.source-branch) + - name: revision + value: $(params.revision) + - name: source-stage-ref + value: $(params.source-stage-ref) + - name: config-path + value: $(params.config-path) + - name: dockerfile + value: $(params.dockerfile) + - name: image-repository + value: $(params.image-repository) + - name: tools-image + value: $(params.tools-image) + - name: buildkit-image + value: $(params.buildkit-image) + - name: build-network + value: $(params.build-network) + - name: build-http-proxy + value: $(params.build-http-proxy) + - name: build-https-proxy + value: $(params.build-https-proxy) + - name: build-all-proxy + value: $(params.build-all-proxy) + - name: build-no-proxy + value: $(params.build-no-proxy) + - name: gitops-read-url + value: $(params.gitops-read-url) + - name: gitops-write-url + value: $(params.gitops-write-url) + - name: gitops-branch + value: $(params.gitops-branch) + - name: gitops-manifest-path + value: $(params.gitops-manifest-path) + - name: gitops-release-state-path + value: $(params.gitops-release-state-path) + - name: gitops-max-push-attempts + value: $(params.gitops-max-push-attempts) + - name: gitops-author-name + value: $(params.gitops-author-name) + - name: gitops-author-email + value: $(params.gitops-author-email) + - name: manifest-template-b64 + value: $(params.manifest-template-b64) + - name: image-build + runAfter: + - source-validate + workspaces: + - name: source + workspace: source + taskSpec: + params: + - name: git-read-url + - name: source-branch + - name: revision + - name: source-stage-ref + - name: config-path + - name: dockerfile + - name: image-repository + - name: tools-image + - name: buildkit-image + - name: build-network + - name: build-http-proxy + - name: build-https-proxy + - name: build-all-proxy + - name: build-no-proxy + - name: gitops-read-url + - name: gitops-write-url + - name: gitops-branch + - name: gitops-manifest-path + - name: gitops-release-state-path + - name: gitops-max-push-attempts + - name: gitops-author-name + - name: gitops-author-email + - name: manifest-template-b64 + workspaces: + - name: source + steps: + - name: build-and-push + image: $(params.buildkit-image) + imagePullPolicy: IfNotPresent + env: + - name: HTTP_PROXY + value: $(params.build-http-proxy) + - name: http_proxy + value: $(params.build-http-proxy) + - name: HTTPS_PROXY + value: $(params.build-https-proxy) + - name: https_proxy + value: $(params.build-https-proxy) + - name: ALL_PROXY + value: $(params.build-all-proxy) + - name: all_proxy + value: $(params.build-all-proxy) + - name: NO_PROXY + value: $(params.build-no-proxy) + - name: no_proxy + value: $(params.build-no-proxy) + - name: BUILDKITD_FLAGS + value: "--oci-worker-no-process-sandbox --oci-worker-net=host --allow-insecure-entitlement network.host" + - name: SOURCE_ROOT + value: $(workspaces.source.path)/repo + - name: SOURCE_COMMIT + value: $(params.revision) + - name: IMAGE_REPOSITORY + value: $(params.image-repository) + - name: DOCKERFILE + value: $(params.dockerfile) + - name: BUILD_NETWORK + value: $(params.build-network) + - name: BUILD_METADATA_FILE + value: $(workspaces.source.path)/build-metadata.json + - name: BUILD_RESULT_FILE + value: $(workspaces.source.path)/build-result.json + securityContext: + privileged: true + runAsUser: 1000 + runAsGroup: 1000 + script: "#!/bin/sh\nset -eu\nexec \"$(workspaces.source.path)/repo/scripts/ci/build-image.sh\"" + params: + - name: git-read-url + value: $(params.git-read-url) + - name: source-branch + value: $(params.source-branch) + - name: revision + value: $(params.revision) + - name: source-stage-ref + value: $(params.source-stage-ref) + - name: config-path + value: $(params.config-path) + - name: dockerfile + value: $(params.dockerfile) + - name: image-repository + value: $(params.image-repository) + - name: tools-image + value: $(params.tools-image) + - name: buildkit-image + value: $(params.buildkit-image) + - name: build-network + value: $(params.build-network) + - name: build-http-proxy + value: $(params.build-http-proxy) + - name: build-https-proxy + value: $(params.build-https-proxy) + - name: build-all-proxy + value: $(params.build-all-proxy) + - name: build-no-proxy + value: $(params.build-no-proxy) + - name: gitops-read-url + value: $(params.gitops-read-url) + - name: gitops-write-url + value: $(params.gitops-write-url) + - name: gitops-branch + value: $(params.gitops-branch) + - name: gitops-manifest-path + value: $(params.gitops-manifest-path) + - name: gitops-release-state-path + value: $(params.gitops-release-state-path) + - name: gitops-max-push-attempts + value: $(params.gitops-max-push-attempts) + - name: gitops-author-name + value: $(params.gitops-author-name) + - name: gitops-author-email + value: $(params.gitops-author-email) + - name: manifest-template-b64 + value: $(params.manifest-template-b64) + - name: gitops-publish + runAfter: + - image-build + workspaces: + - name: source + workspace: source + taskSpec: + params: + - name: git-read-url + - name: source-branch + - name: revision + - name: source-stage-ref + - name: config-path + - name: dockerfile + - name: image-repository + - name: tools-image + - name: buildkit-image + - name: build-network + - name: build-http-proxy + - name: build-https-proxy + - name: build-all-proxy + - name: build-no-proxy + - name: gitops-read-url + - name: gitops-write-url + - name: gitops-branch + - name: gitops-manifest-path + - name: gitops-release-state-path + - name: gitops-max-push-attempts + - name: gitops-author-name + - name: gitops-author-email + - name: manifest-template-b64 + workspaces: + - name: source + steps: + - name: publish-digest-manifest + image: $(params.tools-image) + imagePullPolicy: IfNotPresent + env: + - name: HTTP_PROXY + value: $(params.build-http-proxy) + - name: http_proxy + value: $(params.build-http-proxy) + - name: HTTPS_PROXY + value: $(params.build-https-proxy) + - name: https_proxy + value: $(params.build-https-proxy) + - name: ALL_PROXY + value: $(params.build-all-proxy) + - name: all_proxy + value: $(params.build-all-proxy) + - name: NO_PROXY + value: $(params.build-no-proxy) + - name: no_proxy + value: $(params.build-no-proxy) + script: "#!/bin/sh\nset -eu\nroot=\"$(workspaces.source.path)\"\nexec bun \"$root/repo/scripts/ci/publish-gitops.mjs\" \\\n --source-root \"$root/repo\" \\\n --source-commit \"$(params.revision)\" \\\n --config-path \"$(params.config-path)\" \\\n --metadata \"$root/build-metadata.json\" \\\n --manifest-template-b64 \"$(params.manifest-template-b64)\" \\\n --image-repository \"$(params.image-repository)\" \\\n --gitops-read-url \"$(params.gitops-read-url)\" \\\n --gitops-write-url \"$(params.gitops-write-url)\" \\\n --gitops-branch \"$(params.gitops-branch)\" \\\n --manifest-path \"$(params.gitops-manifest-path)\" \\\n --release-state-path \"$(params.gitops-release-state-path)\" \\\n --max-push-attempts \"$(params.gitops-max-push-attempts)\" \\\n --author-name \"$(params.gitops-author-name)\" \\\n --author-email \"$(params.gitops-author-email)\" \\\n --worktree \"$root/gitops\"" + params: + - name: git-read-url + value: $(params.git-read-url) + - name: source-branch + value: $(params.source-branch) + - name: revision + value: $(params.revision) + - name: source-stage-ref + value: $(params.source-stage-ref) + - name: config-path + value: $(params.config-path) + - name: dockerfile + value: $(params.dockerfile) + - name: image-repository + value: $(params.image-repository) + - name: tools-image + value: $(params.tools-image) + - name: buildkit-image + value: $(params.buildkit-image) + - name: build-network + value: $(params.build-network) + - name: build-http-proxy + value: $(params.build-http-proxy) + - name: build-https-proxy + value: $(params.build-https-proxy) + - name: build-all-proxy + value: $(params.build-all-proxy) + - name: build-no-proxy + value: $(params.build-no-proxy) + - name: gitops-read-url + value: $(params.gitops-read-url) + - name: gitops-write-url + value: $(params.gitops-write-url) + - name: gitops-branch + value: $(params.gitops-branch) + - name: gitops-manifest-path + value: $(params.gitops-manifest-path) + - name: gitops-release-state-path + value: $(params.gitops-release-state-path) + - name: gitops-max-push-attempts + value: $(params.gitops-max-push-attempts) + - name: gitops-author-name + value: $(params.gitops-author-name) + - name: gitops-author-email + value: $(params.gitops-author-email) + - name: manifest-template-b64 + value: $(params.manifest-template-b64) + taskRunTemplate: + serviceAccountName: sub2rank-development-nc01-tekton-runner + podTemplate: + hostNetwork: true + dnsPolicy: ClusterFirstWithHostNet + securityContext: + fsGroup: 1000 + params: + - name: git-read-url + value: "{{ git_read_url }}" + - name: source-branch + value: "{{ source_branch }}" + - name: revision + value: "{{ revision }}" + - name: source-stage-ref + value: "{{ source_snapshot_prefix }}/{{ revision }}" + - name: config-path + value: config/sub2rank.yaml + - name: dockerfile + value: Dockerfile + - name: image-repository + value: "{{ image_repository }}" + - name: tools-image + value: 127.0.0.1:5000/hwlab/hwlab-ci-node-tools:node22-alpine-bun-v1 + - name: buildkit-image + value: 127.0.0.1:5000/hwlab/buildkit:rootless + - name: build-network + value: host + - name: build-http-proxy + value: http://127.0.0.1:10808 + - name: build-https-proxy + value: http://127.0.0.1:10808 + - name: build-all-proxy + value: http://127.0.0.1:10808 + - name: build-no-proxy + value: "localhost,127.0.0.1,::1,127.0.0.1:5000,localhost:5000,.svc,.svc.cluster.local,.cluster.local,hyueapi.com,.hyueapi.com" + - name: gitops-read-url + value: http://git-mirror-http.devops-infra.svc.cluster.local:8080/pikasTech/unidesk.git + - name: gitops-write-url + value: http://git-mirror-write.devops-infra.svc.cluster.local:8080/pikasTech/unidesk.git + - name: gitops-branch + value: "{{ gitops_branch }}" + - name: gitops-manifest-path + value: "{{ gitops_manifest_path }}" + - name: gitops-release-state-path + value: deploy/gitops-state/platform-infra/sub2rank-development-nc01.json + - name: gitops-max-push-attempts + value: "3" + - name: gitops-author-name + value: UniDesk Sub2Rank CI + - name: gitops-author-email + value: sub2rank-ci@unidesk.local + - name: manifest-template-b64 + value: YXBpVmVyc2lvbjogdjEKa2luZDogTmFtZXNwYWNlCm1ldGFkYXRhOgogIG5hbWU6IHBsYXRmb3JtLWluZnJhLWRldmVsb3BtZW50CiAgbGFiZWxzOgogICAgYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieTogdW5pZGVzawotLS0KYXBpVmVyc2lvbjogbmV0d29ya2luZy5rOHMuaW8vdjEKa2luZDogTmV0d29ya1BvbGljeQptZXRhZGF0YToKICBuYW1lOiBhbGxvdy1hbGwKICBuYW1lc3BhY2U6IHBsYXRmb3JtLWluZnJhLWRldmVsb3BtZW50CnNwZWM6CiAgcG9kU2VsZWN0b3I6IHt9CiAgcG9saWN5VHlwZXM6CiAgICAtIEluZ3Jlc3MKICAgIC0gRWdyZXNzCiAgaW5ncmVzczoKICAgIC0ge30KICBlZ3Jlc3M6CiAgICAtIHt9Ci0tLQphcGlWZXJzaW9uOiB2MQpraW5kOiBDb25maWdNYXAKbWV0YWRhdGE6CiAgbmFtZTogc3ViMnJhbmstY29uZmlnCiAgbmFtZXNwYWNlOiBwbGF0Zm9ybS1pbmZyYS1kZXZlbG9wbWVudAogIGxhYmVsczoKICAgIGFwcC5rdWJlcm5ldGVzLmlvL25hbWU6IHN1YjJyYW5rCiAgICBhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBwbGF0Zm9ybS1pbmZyYQogICAgYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieTogdW5pZGVzawpiaW5hcnlEYXRhOgogIHN1YjJyYW5rLnlhbWw6ICJfX1NVQjJSQU5LX0NPTkZJR19CQVNFNjRfXyIKLS0tCmFwaVZlcnNpb246IHYxCmtpbmQ6IFBlcnNpc3RlbnRWb2x1bWVDbGFpbQptZXRhZGF0YToKICBuYW1lOiBzdWIycmFuay1kYXRhCiAgbmFtZXNwYWNlOiBwbGF0Zm9ybS1pbmZyYS1kZXZlbG9wbWVudAogIGxhYmVsczoKICAgIGFwcC5rdWJlcm5ldGVzLmlvL25hbWU6IHN1YjJyYW5rCiAgICBhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBwbGF0Zm9ybS1pbmZyYQogICAgYXBwLmt1YmVybmV0ZXMuaW8vbWFuYWdlZC1ieTogdW5pZGVzawpzcGVjOgogIGFjY2Vzc01vZGVzOgogICAgLSBSZWFkV3JpdGVPbmNlCiAgcmVzb3VyY2VzOgogICAgcmVxdWVzdHM6CiAgICAgIHN0b3JhZ2U6IDFHaQotLS0KYXBpVmVyc2lvbjogdjEKa2luZDogU2VydmljZQptZXRhZGF0YToKICBuYW1lOiBzdWIycmFuawogIG5hbWVzcGFjZTogcGxhdGZvcm0taW5mcmEtZGV2ZWxvcG1lbnQKICBsYWJlbHM6CiAgICBhcHAua3ViZXJuZXRlcy5pby9uYW1lOiBzdWIycmFuawogICAgYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogcGxhdGZvcm0taW5mcmEKICAgIGFwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnk6IHVuaWRlc2sKc3BlYzoKICB0eXBlOiBDbHVzdGVySVAKICBzZWxlY3RvcjoKICAgIGFwcC5rdWJlcm5ldGVzLmlvL25hbWU6IHN1YjJyYW5rCiAgcG9ydHM6CiAgICAtIG5hbWU6IGh0dHAKICAgICAgcG9ydDogODA4MAogICAgICB0YXJnZXRQb3J0OiBodHRwCi0tLQphcGlWZXJzaW9uOiBhcHBzL3YxCmtpbmQ6IERlcGxveW1lbnQKbWV0YWRhdGE6CiAgbmFtZTogc3ViMnJhbmsKICBuYW1lc3BhY2U6IHBsYXRmb3JtLWluZnJhLWRldmVsb3BtZW50CiAgbGFiZWxzOgogICAgYXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogc3ViMnJhbmsKICAgIGFwcC5rdWJlcm5ldGVzLmlvL3BhcnQtb2Y6IHBsYXRmb3JtLWluZnJhCiAgICBhcHAua3ViZXJuZXRlcy5pby9tYW5hZ2VkLWJ5OiB1bmlkZXNrCnNwZWM6CiAgcmVwbGljYXM6IDEKICBzdHJhdGVneToKICAgIHR5cGU6IFJlY3JlYXRlCiAgc2VsZWN0b3I6CiAgICBtYXRjaExhYmVsczoKICAgICAgYXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogc3ViMnJhbmsKICB0ZW1wbGF0ZToKICAgIG1ldGFkYXRhOgogICAgICBsYWJlbHM6CiAgICAgICAgYXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogc3ViMnJhbmsKICAgICAgICBhcHAua3ViZXJuZXRlcy5pby9wYXJ0LW9mOiBwbGF0Zm9ybS1pbmZyYQogICAgICBhbm5vdGF0aW9uczoKICAgICAgICB1bmlkZXNrLmFpL3N1YjJyYW5rLWNvbmZpZy1zaGEyNTY6ICJfX1NVQjJSQU5LX0NPTkZJR19TSEEyNTZfXyIKICAgICAgICB1bmlkZXNrLmFpL3N1YjJyYW5rLWRlcGxveW1lbnQtaGFzaDogIjY5ZTc2OTE1MTIwMDc4ODMiCiAgICAgICAgdW5pZGVzay5haS9zb3VyY2UtY29tbWl0OiAiX19TVUIyUkFOS19TT1VSQ0VfQ09NTUlUX18iCiAgICAgICAgdW5pZGVzay5haS9wdWJsaWMtYmFzZS11cmw6ICJodHRwczovL2FwaXN0YXRlLWRldmVsb3BtZW50LmludmFsaWQiCiAgICBzcGVjOgogICAgICBzZWN1cml0eUNvbnRleHQ6CiAgICAgICAgZnNHcm91cDogMTAwMAogICAgICBjb250YWluZXJzOgogICAgICAgIC0gbmFtZTogc3ViMnJhbmsKICAgICAgICAgIGltYWdlOiAiX19TVUIyUkFOS19JTUFHRV9SRUZfXyIKICAgICAgICAgIGltYWdlUHVsbFBvbGljeTogSWZOb3RQcmVzZW50CiAgICAgICAgICBjb21tYW5kOgogICAgICAgICAgICAtICJidW4iCiAgICAgICAgICAgIC0gInNyYy9hcGkudHMiCiAgICAgICAgICAgIC0gIi0tY29uZmlnIgogICAgICAgICAgICAtICIvZXRjL3N1YjJyYW5rL3N1YjJyYW5rLnlhbWwiCiAgICAgICAgICAgIC0gIi0tcnVudGltZSIKICAgICAgICAgICAgLSAiZGV2ZWxvcG1lbnQiCiAgICAgICAgICBwb3J0czoKICAgICAgICAgICAgLSBuYW1lOiBodHRwCiAgICAgICAgICAgICAgY29udGFpbmVyUG9ydDogODA4MAogICAgICAgICAgZW52OgogICAgICAgICAgICAtIG5hbWU6IEFQSVNUQVRFX1dFQl9QQVNTV09SRAogICAgICAgICAgICAgIHZhbHVlRnJvbToKICAgICAgICAgICAgICAgIHNlY3JldEtleVJlZjoKICAgICAgICAgICAgICAgICAgbmFtZTogc3ViMnJhbmstc2VjcmV0cwogICAgICAgICAgICAgICAgICBrZXk6IEFQSVNUQVRFX1dFQl9QQVNTV09SRAogICAgICAgICAgICAtIG5hbWU6IEFQSVNUQVRFX0FQSV9LRVkKICAgICAgICAgICAgICB2YWx1ZUZyb206CiAgICAgICAgICAgICAgICBzZWNyZXRLZXlSZWY6CiAgICAgICAgICAgICAgICAgIG5hbWU6IHN1YjJyYW5rLXNlY3JldHMKICAgICAgICAgICAgICAgICAga2V5OiBBUElTVEFURV9BUElfS0VZCiAgICAgICAgICAgIC0gbmFtZTogQVBJU1RBVEVfU0VTU0lPTl9TRUNSRVQKICAgICAgICAgICAgICB2YWx1ZUZyb206CiAgICAgICAgICAgICAgICBzZWNyZXRLZXlSZWY6CiAgICAgICAgICAgICAgICAgIG5hbWU6IHN1YjJyYW5rLXNlY3JldHMKICAgICAgICAgICAgICAgICAga2V5OiBBUElTVEFURV9TRVNTSU9OX1NFQ1JFVAogICAgICAgICAgICAtIG5hbWU6IFNVQjJBUElfQURNSU5fRU1BSUwKICAgICAgICAgICAgICB2YWx1ZUZyb206CiAgICAgICAgICAgICAgICBzZWNyZXRLZXlSZWY6CiAgICAgICAgICAgICAgICAgIG5hbWU6IHN1YjJyYW5rLXNlY3JldHMKICAgICAgICAgICAgICAgICAga2V5OiBTVUIyQVBJX0FETUlOX0VNQUlMCiAgICAgICAgICAgIC0gbmFtZTogU1VCMkFQSV9BRE1JTl9QQVNTV09SRAogICAgICAgICAgICAgIHZhbHVlRnJvbToKICAgICAgICAgICAgICAgIHNlY3JldEtleVJlZjoKICAgICAgICAgICAgICAgICAgbmFtZTogc3ViMnJhbmstc2VjcmV0cwogICAgICAgICAgICAgICAgICBrZXk6IFNVQjJBUElfQURNSU5fUEFTU1dPUkQKICAgICAgICAgICAgLSBuYW1lOiBBUElTVEFURV9URU1QT1JBTF9BRERSRVNTCiAgICAgICAgICAgICAgdmFsdWU6ICJ0ZW1wb3JhbC1mcm9udGVuZC50ZW1wb3JhbC5zdmMuY2x1c3Rlci5sb2NhbDo3MjMzIgogICAgICAgICAgcmVhZGluZXNzUHJvYmU6CiAgICAgICAgICAgIGh0dHBHZXQ6CiAgICAgICAgICAgICAgcGF0aDogL2hlYWx0aAogICAgICAgICAgICAgIHBvcnQ6IGh0dHAKICAgICAgICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogMwogICAgICAgICAgICBwZXJpb2RTZWNvbmRzOiAxMAogICAgICAgICAgICB0aW1lb3V0U2Vjb25kczogMwogICAgICAgICAgICBmYWlsdXJlVGhyZXNob2xkOiA2CiAgICAgICAgICBsaXZlbmVzc1Byb2JlOgogICAgICAgICAgICBodHRwR2V0OgogICAgICAgICAgICAgIHBhdGg6IC9oZWFsdGgKICAgICAgICAgICAgICBwb3J0OiBodHRwCiAgICAgICAgICAgIGluaXRpYWxEZWxheVNlY29uZHM6IDMKICAgICAgICAgICAgcGVyaW9kU2Vjb25kczogMTAKICAgICAgICAgICAgdGltZW91dFNlY29uZHM6IDMKICAgICAgICAgICAgZmFpbHVyZVRocmVzaG9sZDogNgogICAgICAgICAgdm9sdW1lTW91bnRzOgogICAgICAgICAgICAtIG5hbWU6IGFwcC1jb25maWcKICAgICAgICAgICAgICBtb3VudFBhdGg6IC9ldGMvc3ViMnJhbmsvc3ViMnJhbmsueWFtbAogICAgICAgICAgICAgIHN1YlBhdGg6IHN1YjJyYW5rLnlhbWwKICAgICAgICAgICAgICByZWFkT25seTogdHJ1ZQogICAgICAgICAgICAtIG5hbWU6IGRhdGEKICAgICAgICAgICAgICBtb3VudFBhdGg6IC92YXIvbGliL3N1YjJyYW5rCiAgICAgICAgICAgIC0gbmFtZTogaG9zdC1zb3VyY2UtMAogICAgICAgICAgICAgIG1vdW50UGF0aDogL29wdC91bmlkZXNrCiAgICAgICAgICAgICAgcmVhZE9ubHk6IHRydWUKICAgICAgdm9sdW1lczoKICAgICAgICAtIG5hbWU6IGFwcC1jb25maWcKICAgICAgICAgIGNvbmZpZ01hcDoKICAgICAgICAgICAgbmFtZTogc3ViMnJhbmstY29uZmlnCiAgICAgICAgLSBuYW1lOiBkYXRhCiAgICAgICAgICBwZXJzaXN0ZW50Vm9sdW1lQ2xhaW06CiAgICAgICAgICAgIGNsYWltTmFtZTogc3ViMnJhbmstZGF0YQogICAgICAgIC0gbmFtZTogaG9zdC1zb3VyY2UtMAogICAgICAgICAgaG9zdFBhdGg6CiAgICAgICAgICAgIHBhdGg6IC9yb290L3VuaWRlc2sKICAgICAgICAgICAgdHlwZTogRGlyZWN0b3J5Ci0tLQphcGlWZXJzaW9uOiBhcHBzL3YxCmtpbmQ6IERlcGxveW1lbnQKbWV0YWRhdGE6CiAgbmFtZTogc3ViMnJhbmstd29ya2VyCiAgbmFtZXNwYWNlOiBwbGF0Zm9ybS1pbmZyYS1kZXZlbG9wbWVudAogIGxhYmVsczoKICAgIGFwcC5rdWJlcm5ldGVzLmlvL25hbWU6IHN1YjJyYW5rLXdvcmtlcgogICAgYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogcGxhdGZvcm0taW5mcmEKICAgIGFwcC5rdWJlcm5ldGVzLmlvL21hbmFnZWQtYnk6IHVuaWRlc2sKc3BlYzoKICByZXBsaWNhczogMQogIHN0cmF0ZWd5OgogICAgdHlwZTogUmVjcmVhdGUKICBzZWxlY3RvcjoKICAgIG1hdGNoTGFiZWxzOgogICAgICBhcHAua3ViZXJuZXRlcy5pby9uYW1lOiBzdWIycmFuay13b3JrZXIKICB0ZW1wbGF0ZToKICAgIG1ldGFkYXRhOgogICAgICBsYWJlbHM6CiAgICAgICAgYXBwLmt1YmVybmV0ZXMuaW8vbmFtZTogc3ViMnJhbmstd29ya2VyCiAgICAgICAgYXBwLmt1YmVybmV0ZXMuaW8vcGFydC1vZjogcGxhdGZvcm0taW5mcmEKICAgICAgYW5ub3RhdGlvbnM6CiAgICAgICAgdW5pZGVzay5haS9zdWIycmFuay1jb25maWctc2hhMjU2OiAiX19TVUIyUkFOS19DT05GSUdfU0hBMjU2X18iCiAgICAgICAgdW5pZGVzay5haS9zdWIycmFuay1kZXBsb3ltZW50LWhhc2g6ICI2OWU3NjkxNTEyMDA3ODgzIgogICAgICAgIHVuaWRlc2suYWkvc291cmNlLWNvbW1pdDogIl9fU1VCMlJBTktfU09VUkNFX0NPTU1JVF9fIgogICAgc3BlYzoKICAgICAgc2VjdXJpdHlDb250ZXh0OgogICAgICAgIGZzR3JvdXA6IDEwMDAKICAgICAgY29udGFpbmVyczoKICAgICAgICAtIG5hbWU6IHN1YjJyYW5rLXdvcmtlcgogICAgICAgICAgaW1hZ2U6ICJfX1NVQjJSQU5LX0lNQUdFX1JFRl9fIgogICAgICAgICAgaW1hZ2VQdWxsUG9saWN5OiBJZk5vdFByZXNlbnQKICAgICAgICAgIGNvbW1hbmQ6CiAgICAgICAgICAgIC0gImJ1biIKICAgICAgICAgICAgLSAic3JjL3dvcmtlci50cyIKICAgICAgICAgICAgLSAiLS1jb25maWciCiAgICAgICAgICAgIC0gIi9ldGMvc3ViMnJhbmsvc3ViMnJhbmsueWFtbCIKICAgICAgICAgICAgLSAiLS1ydW50aW1lIgogICAgICAgICAgICAtICJkZXZlbG9wbWVudCIKICAgICAgICAgIHBvcnRzOgogICAgICAgICAgICAtIG5hbWU6IGhlYWx0aAogICAgICAgICAgICAgIGNvbnRhaW5lclBvcnQ6IDgwODEKICAgICAgICAgIGVudjoKICAgICAgICAgICAgLSBuYW1lOiBBUElTVEFURV9XRUJfUEFTU1dPUkQKICAgICAgICAgICAgICB2YWx1ZUZyb206CiAgICAgICAgICAgICAgICBzZWNyZXRLZXlSZWY6CiAgICAgICAgICAgICAgICAgIG5hbWU6IHN1YjJyYW5rLXNlY3JldHMKICAgICAgICAgICAgICAgICAga2V5OiBBUElTVEFURV9XRUJfUEFTU1dPUkQKICAgICAgICAgICAgLSBuYW1lOiBBUElTVEFURV9BUElfS0VZCiAgICAgICAgICAgICAgdmFsdWVGcm9tOgogICAgICAgICAgICAgICAgc2VjcmV0S2V5UmVmOgogICAgICAgICAgICAgICAgICBuYW1lOiBzdWIycmFuay1zZWNyZXRzCiAgICAgICAgICAgICAgICAgIGtleTogQVBJU1RBVEVfQVBJX0tFWQogICAgICAgICAgICAtIG5hbWU6IEFQSVNUQVRFX1NFU1NJT05fU0VDUkVUCiAgICAgICAgICAgICAgdmFsdWVGcm9tOgogICAgICAgICAgICAgICAgc2VjcmV0S2V5UmVmOgogICAgICAgICAgICAgICAgICBuYW1lOiBzdWIycmFuay1zZWNyZXRzCiAgICAgICAgICAgICAgICAgIGtleTogQVBJU1RBVEVfU0VTU0lPTl9TRUNSRVQKICAgICAgICAgICAgLSBuYW1lOiBTVUIyQVBJX0FETUlOX0VNQUlMCiAgICAgICAgICAgICAgdmFsdWVGcm9tOgogICAgICAgICAgICAgICAgc2VjcmV0S2V5UmVmOgogICAgICAgICAgICAgICAgICBuYW1lOiBzdWIycmFuay1zZWNyZXRzCiAgICAgICAgICAgICAgICAgIGtleTogU1VCMkFQSV9BRE1JTl9FTUFJTAogICAgICAgICAgICAtIG5hbWU6IFNVQjJBUElfQURNSU5fUEFTU1dPUkQKICAgICAgICAgICAgICB2YWx1ZUZyb206CiAgICAgICAgICAgICAgICBzZWNyZXRLZXlSZWY6CiAgICAgICAgICAgICAgICAgIG5hbWU6IHN1YjJyYW5rLXNlY3JldHMKICAgICAgICAgICAgICAgICAga2V5OiBTVUIyQVBJX0FETUlOX1BBU1NXT1JECiAgICAgICAgICAgIC0gbmFtZTogQVBJU1RBVEVfVEVNUE9SQUxfQUREUkVTUwogICAgICAgICAgICAgIHZhbHVlOiAidGVtcG9yYWwtZnJvbnRlbmQudGVtcG9yYWwuc3ZjLmNsdXN0ZXIubG9jYWw6NzIzMyIKICAgICAgICAgIHJlYWRpbmVzc1Byb2JlOgogICAgICAgICAgICBodHRwR2V0OgogICAgICAgICAgICAgIHBhdGg6IC9oZWFsdGgKICAgICAgICAgICAgICBwb3J0OiBoZWFsdGgKICAgICAgICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogMwogICAgICAgICAgICBwZXJpb2RTZWNvbmRzOiAxMAogICAgICAgICAgICB0aW1lb3V0U2Vjb25kczogMwogICAgICAgICAgICBmYWlsdXJlVGhyZXNob2xkOiA2CiAgICAgICAgICBsaXZlbmVzc1Byb2JlOgogICAgICAgICAgICBodHRwR2V0OgogICAgICAgICAgICAgIHBhdGg6IC9oZWFsdGgKICAgICAgICAgICAgICBwb3J0OiBoZWFsdGgKICAgICAgICAgICAgaW5pdGlhbERlbGF5U2Vjb25kczogMwogICAgICAgICAgICBwZXJpb2RTZWNvbmRzOiAxMAogICAgICAgICAgICB0aW1lb3V0U2Vjb25kczogMwogICAgICAgICAgICBmYWlsdXJlVGhyZXNob2xkOiA2CiAgICAgICAgICB2b2x1bWVNb3VudHM6CiAgICAgICAgICAgIC0gbmFtZTogYXBwLWNvbmZpZwogICAgICAgICAgICAgIG1vdW50UGF0aDogL2V0Yy9zdWIycmFuay9zdWIycmFuay55YW1sCiAgICAgICAgICAgICAgc3ViUGF0aDogc3ViMnJhbmsueWFtbAogICAgICAgICAgICAgIHJlYWRPbmx5OiB0cnVlCiAgICAgICAgICAgIC0gbmFtZTogZGF0YQogICAgICAgICAgICAgIG1vdW50UGF0aDogL3Zhci9saWIvc3ViMnJhbmsKICAgICAgICAgICAgLSBuYW1lOiBob3N0LXNvdXJjZS0wCiAgICAgICAgICAgICAgbW91bnRQYXRoOiAvb3B0L3VuaWRlc2sKICAgICAgICAgICAgICByZWFkT25seTogdHJ1ZQogICAgICB2b2x1bWVzOgogICAgICAgIC0gbmFtZTogYXBwLWNvbmZpZwogICAgICAgICAgY29uZmlnTWFwOgogICAgICAgICAgICBuYW1lOiBzdWIycmFuay1jb25maWcKICAgICAgICAtIG5hbWU6IGRhdGEKICAgICAgICAgIHBlcnNpc3RlbnRWb2x1bWVDbGFpbToKICAgICAgICAgICAgY2xhaW1OYW1lOiBzdWIycmFuay1kYXRhCiAgICAgICAgLSBuYW1lOiBob3N0LXNvdXJjZS0wCiAgICAgICAgICBob3N0UGF0aDoKICAgICAgICAgICAgcGF0aDogL3Jvb3QvdW5pZGVzawogICAgICAgICAgICB0eXBlOiBEaXJlY3RvcnkK + workspaces: + - name: source + volumeClaimTemplate: + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 4Gi diff --git a/config/sub2rank.yaml b/config/sub2rank.yaml index ef0b37d..17ee494 100644 --- a/config/sub2rank.yaml +++ b/config/sub2rank.yaml @@ -105,6 +105,12 @@ runtime: adminToken: sourceRef: platform-infra/apistate.env sourceKey: APISTATE_API_KEY + development: + mode: http + baseUrl: http://sub2rank.platform-infra-development.svc.cluster.local:8080 + adminToken: + sourceRef: platform-infra/apistate.env + sourceKey: APISTATE_API_KEY native-api: mode: http baseUrl: http://127.0.0.1:8080 @@ -200,3 +206,23 @@ runtime: webPasswordEnv: APISTATE_WEB_PASSWORD apiKeyEnv: APISTATE_API_KEY sessionSecretEnv: APISTATE_SESSION_SECRET + development: + listenHost: 0.0.0.0 + listenPort: 8080 + workerHealthHost: 0.0.0.0 + workerHealthPort: 8081 + webListenHost: 127.0.0.1 + webListenPort: 5173 + webApiBaseUrl: http://127.0.0.1:8080 + secureCookies: false + databasePath: /var/lib/sub2rank/sub2rank.sqlite + scoreCachePath: /var/lib/sub2rank/account-scores.json + monitorWorkDir: /opt/unidesk + temporalTaskQueue: apistate-development + scoreScheduleWorkflowId: apistate-development-score-refresh-schedule + adminTokenEnv: APISTATE_API_KEY + sub2apiAdminEmailEnv: SUB2API_ADMIN_EMAIL + sub2apiAdminPasswordEnv: SUB2API_ADMIN_PASSWORD + webPasswordEnv: APISTATE_WEB_PASSWORD + apiKeyEnv: APISTATE_API_KEY + sessionSecretEnv: APISTATE_SESSION_SECRET