diff --git a/.github/workflows/apply.yml b/.github/workflows/apply.yml index 0b7332df..9dbaa073 100644 --- a/.github/workflows/apply.yml +++ b/.github/workflows/apply.yml @@ -1,96 +1,96 @@ -name: Apply -on: - push: - branches: - - "main" - -jobs: - get-changed-project-stack: - runs-on: ubuntu-latest - steps: - - name: Checkout Code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Install Python - uses: actions/setup-python@v4 - with: - python-version: 3.9 - - - name: Install Pytest Html - run: python3 -m pip install pytest-html pyyaml -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com - - - name: Git Diff - id: git-diff - uses: technote-space/get-diff-action@v6 - - - name: Get Changed Projects and Stacks - id: get-changed-projects-and-stacks - env: - CHANGED_PATHS: ${{ steps.git-diff.outputs.diff }} - run: | - export CHANGED_PATHS="${{ steps.git-diff.outputs.diff }}" - python3 hack/get_changed_projects_and_stacks.py - - - name: Print Changed Projects and Stacks - run: | - echo "Changed projects: ${{ steps.get-changed-projects-and-stacks.outputs.changed_projects }}" - echo "Changed stacks: ${{ steps.get-changed-projects-and-stacks.outputs.changed_stacks }}" - outputs: - changed_projects: ${{ steps.get-changed-projects-and-stacks.outputs.changed_projects }} - changed_stacks: ${{ steps.get-changed-projects-and-stacks.outputs.changed_stacks }} - - apply: - needs: [ get-changed-project-stack ] - runs-on: ubuntu-latest - steps: - - name: Checkout Code - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Install Kusion - run: curl https://www.kusionstack.io/scripts/install.sh | sh -s 0.12.0-rc.1 - - - name: Install Python - uses: actions/setup-python@v4 - with: - python-version: 3.9 - - - name: Install Pytest Html - run: python3 -m pip install pytest-html pyyaml -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com - - - name: Setup K3d&K3s - uses: nolar/setup-k3d-k3s@v1 - - - name: Apply - id: apply - env: - CHANGED_STACKS: ${{ needs.get-changed-project-stack.outputs.changed_stacks }} - OSS_ACCESS_KEY_ID: '${{ secrets.OSS_ACCESS_KEY_ID }}' - OSS_ACCESS_KEY_SECRET: '${{ secrets.OSS_ACCESS_KEY_SECRET }}' - WORKSPACE_FILE_DIR: workspaces - run: | - # manually source kusion env file - source "$HOME/.kusion/.env" - - # setup remote backend for kusion cli - kusion config set backends.oss_test '{"type":"oss","configs":{"bucket":"kusion-test","endpoint":"oss-cn-shanghai.aliyuncs.com"}}' - kusion config set backends.current oss_test - - # execute python script for applying - python3 hack/apply_changed_stacks.py - - - name: Upload Report - id: upload-report - if: ${{ steps.apply.outputs.apply_success == 'true' }} - uses: actions/upload-artifact@v4 - with: - name: apply-report - path: hack/report/apply-result.zip - - - name: Echo URL - if: ${{ steps.apply.outputs.apply_success == 'true' }} - run: | - echo "Please check the apply result at: ${{ steps.upload-report.outputs.artifact-url }}" +# name: Apply +# on: +# push: +# branches: +# - "main" + +# jobs: +# get-changed-project-stack: +# runs-on: ubuntu-latest +# steps: +# - name: Checkout Code +# uses: actions/checkout@v4 +# with: +# fetch-depth: 0 + +# - name: Install Python +# uses: actions/setup-python@v4 +# with: +# python-version: 3.9 + +# - name: Install Pytest Html +# run: python3 -m pip install pytest-html pyyaml -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com + +# - name: Git Diff +# id: git-diff +# uses: technote-space/get-diff-action@v6 + +# - name: Get Changed Projects and Stacks +# id: get-changed-projects-and-stacks +# env: +# CHANGED_PATHS: ${{ steps.git-diff.outputs.diff }} +# run: | +# export CHANGED_PATHS="${{ steps.git-diff.outputs.diff }}" +# python3 hack/get_changed_projects_and_stacks.py + +# - name: Print Changed Projects and Stacks +# run: | +# echo "Changed projects: ${{ steps.get-changed-projects-and-stacks.outputs.changed_projects }}" +# echo "Changed stacks: ${{ steps.get-changed-projects-and-stacks.outputs.changed_stacks }}" +# outputs: +# changed_projects: ${{ steps.get-changed-projects-and-stacks.outputs.changed_projects }} +# changed_stacks: ${{ steps.get-changed-projects-and-stacks.outputs.changed_stacks }} + +# apply: +# needs: [ get-changed-project-stack ] +# runs-on: ubuntu-latest +# steps: +# - name: Checkout Code +# uses: actions/checkout@v4 +# with: +# fetch-depth: 0 + +# - name: Install Kusion +# run: curl https://www.kusionstack.io/scripts/install.sh | sh -s 0.12.0-rc.1 + +# - name: Install Python +# uses: actions/setup-python@v4 +# with: +# python-version: 3.9 + +# - name: Install Pytest Html +# run: python3 -m pip install pytest-html pyyaml -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com + +# - name: Setup K3d&K3s +# uses: nolar/setup-k3d-k3s@v1 + +# - name: Apply +# id: apply +# env: +# CHANGED_STACKS: ${{ needs.get-changed-project-stack.outputs.changed_stacks }} +# OSS_ACCESS_KEY_ID: '${{ secrets.OSS_ACCESS_KEY_ID }}' +# OSS_ACCESS_KEY_SECRET: '${{ secrets.OSS_ACCESS_KEY_SECRET }}' +# WORKSPACE_FILE_DIR: workspaces +# run: | +# # manually source kusion env file +# source "$HOME/.kusion/.env" + +# # setup remote backend for kusion cli +# kusion config set backends.oss_test '{"type":"oss","configs":{"bucket":"kusion-test","endpoint":"oss-cn-shanghai.aliyuncs.com"}}' +# kusion config set backends.current oss_test + +# # execute python script for applying +# python3 hack/apply_changed_stacks.py + +# - name: Upload Report +# id: upload-report +# if: ${{ steps.apply.outputs.apply_success == 'true' }} +# uses: actions/upload-artifact@v4 +# with: +# name: apply-report +# path: hack/report/apply-result.zip + +# - name: Echo URL +# if: ${{ steps.apply.outputs.apply_success == 'true' }} +# run: | +# echo "Please check the apply result at: ${{ steps.upload-report.outputs.artifact-url }}" diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 70e4a5ad..0e2d870f 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -52,7 +52,7 @@ jobs: fetch-depth: 0 - name: Install Kusion - run: curl https://www.kusionstack.io/scripts/install.sh | sh -s 0.12.0-rc.1 + run: curl https://www.kusionstack.io/scripts/install.sh | sh -s 0.12.0-rc.2 - name: Install Python uses: actions/setup-python@v4 @@ -72,6 +72,8 @@ jobs: OSS_ACCESS_KEY_ID: '${{ secrets.OSS_ACCESS_KEY_ID }}' OSS_ACCESS_KEY_SECRET: '${{ secrets.OSS_ACCESS_KEY_SECRET }}' WORKSPACE_FILE_DIR: workspaces + ALICLOUD_REGION: cn-shanghai + AWS_REGION: us-east-1 run: | # manually source kusion env file source "$HOME/.kusion/.env" diff --git a/example/nginx/dev/kcl.mod b/example/nginx/dev/kcl.mod index ed922469..25f6478b 100644 --- a/example/nginx/dev/kcl.mod +++ b/example/nginx/dev/kcl.mod @@ -3,9 +3,9 @@ name = "nginx" version = "0.1.0" [dependencies] -kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.1.0" } -network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.1.0" } +kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.2.0" } +service = { oci = "oci://ghcr.io/kusionstack/service", tag = "0.1.0" } +network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.2.0" } [profile] entries = ["main.k"] - diff --git a/example/nginx/dev/main.k b/example/nginx/dev/main.k index b72dfa1c..e557607b 100644 --- a/example/nginx/dev/main.k +++ b/example/nginx/dev/main.k @@ -1,10 +1,10 @@ import kam.v1.app_configuration as ac -import kam.v1.workload as wl -import kam.v1.workload.container as c +import service +import service.container as c import network as n nginx: ac.AppConfiguration { - workload: wl.Service { + workload: service.Service { containers: { wordpress: c.Container { image = "nginx:1.25.2" @@ -22,7 +22,6 @@ nginx: ac.AppConfiguration { n.Port { port: 80 protocol: "TCP" - public: True } ] } diff --git a/example/nginx/project.yaml b/example/nginx/project.yaml index d3398312..2101d969 100644 --- a/example/nginx/project.yaml +++ b/example/nginx/project.yaml @@ -1,4 +1,2 @@ # The project basic info name: nginx -generator: - type: AppConfiguration diff --git a/example/service-multi-stack/base/base.k b/example/service-multi-stack/base/base.k index a70db8e9..9aa863c2 100644 --- a/example/service-multi-stack/base/base.k +++ b/example/service-multi-stack/base/base.k @@ -1,10 +1,10 @@ import kam.v1.app_configuration as ac -import kam.v1.workload as wl -import kam.v1.workload.container as c +import service +import service.container as c import network as n echoserver: ac.AppConfiguration { - workload: wl.Service { + workload: service.Service { containers: { "server": c.Container { image = "" diff --git a/example/service-multi-stack/dev/kcl.mod b/example/service-multi-stack/dev/kcl.mod index 4bf4fa34..6f3e222f 100644 --- a/example/service-multi-stack/dev/kcl.mod +++ b/example/service-multi-stack/dev/kcl.mod @@ -3,8 +3,9 @@ name = "service-multi-stack-dev" version = "0.1.0" [dependencies] -kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.1.0" } -network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.1.0" } +kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.2.0" } +service = { oci = "oci://ghcr.io/kusionstack/service", tag = "0.1.0" } +network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.2.0" } [profile] entries = ["../base/base.k", "main.k"] diff --git a/example/service-multi-stack/prod/kcl.mod b/example/service-multi-stack/prod/kcl.mod index 389c30f6..9061a745 100644 --- a/example/service-multi-stack/prod/kcl.mod +++ b/example/service-multi-stack/prod/kcl.mod @@ -3,8 +3,9 @@ name = "service-multi-stack-prod" version = "0.1.0" [dependencies] -kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.1.0" } -network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.1.0" } +kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.2.0" } +service = { oci = "oci://ghcr.io/kusionstack/service", tag = "0.1.0" } +network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.2.0" } [profile] entries = ["../base/base.k", "main.k"] diff --git a/example/service-multi-stack/project.yaml b/example/service-multi-stack/project.yaml index 37923f05..557cb122 100644 --- a/example/service-multi-stack/project.yaml +++ b/example/service-multi-stack/project.yaml @@ -1,4 +1,2 @@ # The project basic info name: service-multi-stack -generator: - type: AppConfiguration \ No newline at end of file diff --git a/example/simple-job/dev/kcl.mod b/example/simple-job/dev/kcl.mod index 6024760f..eb4bd8d9 100644 --- a/example/simple-job/dev/kcl.mod +++ b/example/simple-job/dev/kcl.mod @@ -3,7 +3,8 @@ name = "simple-job" version = "0.1.0" [dependencies] -kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.1.0" } +kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.2.0" } +job = { oci = "oci://ghcr.io/kusionstack/job", tag = "0.1.0" } [profile] entries = ["main.k"] diff --git a/example/simple-job/dev/main.k b/example/simple-job/dev/main.k index 11589963..7bdbadc2 100644 --- a/example/simple-job/dev/main.k +++ b/example/simple-job/dev/main.k @@ -1,9 +1,9 @@ import kam.v1.app_configuration as ac -import kam.v1.workload as wl -import kam.v1.workload.container as c +import job +import job.container as c helloworld: ac.AppConfiguration { - workload: wl.Job { + workload: job.Job { containers: { "busybox": c.Container { # The target image diff --git a/example/simple-job/project.yaml b/example/simple-job/project.yaml index 6072de8c..23d40244 100644 --- a/example/simple-job/project.yaml +++ b/example/simple-job/project.yaml @@ -1,4 +1,2 @@ # The project basic info name: simple-job -generator: - type: AppConfiguration \ No newline at end of file diff --git a/example/simple-service/dev/kcl.mod b/example/simple-service/dev/kcl.mod index e69cde96..2148d4ce 100644 --- a/example/simple-service/dev/kcl.mod +++ b/example/simple-service/dev/kcl.mod @@ -3,10 +3,11 @@ name = "simple-service" version = "0.1.0" [dependencies] -kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.1.0" } -network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.1.0" } -opsrule = { oci = "oci://ghcr.io/kusionstack/opsrule", tag = "0.1.0" } -monitoring = { oci = "oci://ghcr.io/kusionstack/monitoring", tag = "0.1.0" } +kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.2.0" } +service = { oci = "oci://ghcr.io/kusionstack/service", tag = "0.1.0" } +network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.2.0" } +opsrule = { oci = "oci://ghcr.io/kusionstack/opsrule", tag = "0.2.0" } +monitoring = { oci = "oci://ghcr.io/kusionstack/monitoring", tag = "0.2.0" } [profile] entries = ["main.k"] diff --git a/example/simple-service/dev/main.k b/example/simple-service/dev/main.k index 4c54e4c7..4bb700b9 100644 --- a/example/simple-service/dev/main.k +++ b/example/simple-service/dev/main.k @@ -1,13 +1,13 @@ import kam.v1.app_configuration as ac -import kam.v1.workload as wl -import kam.v1.workload.container as c -import kam.v1.workload.container.probe as p +import service +import service.container as c +import service.container.probe as p import monitoring as m import opsrule as o import network as n helloworld: ac.AppConfiguration { - workload: wl.Service { + workload: service.Service { containers: { "helloworld": c.Container { image: "gcr.io/google-samples/gb-frontend:v4" diff --git a/example/wordpress-cloud-rds/prod/kcl.mod b/example/wordpress-cloud-rds/prod/kcl.mod index 036d8ec3..719e6a4a 100644 --- a/example/wordpress-cloud-rds/prod/kcl.mod +++ b/example/wordpress-cloud-rds/prod/kcl.mod @@ -3,9 +3,10 @@ name = "wordpress-cloud-rds" version = "0.1.0" [dependencies] -mysql = { oci = "oci://ghcr.io/kusionstack/mysql", tag = "0.1.0" } -kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.1.0" } -network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.1.0" } +kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.2.0" } +service = { oci = "oci://ghcr.io/kusionstack/service", tag = "0.1.0" } +network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.2.0" } +mysql = { oci = "oci://ghcr.io/kusionstack/mysql", tag = "0.2.0" } [profile] entries = ["main.k"] diff --git a/example/wordpress-cloud-rds/prod/main.k b/example/wordpress-cloud-rds/prod/main.k index 51c0d7fd..db606334 100644 --- a/example/wordpress-cloud-rds/prod/main.k +++ b/example/wordpress-cloud-rds/prod/main.k @@ -1,12 +1,12 @@ import kam.v1.app_configuration as ac -import kam.v1.workload as wl -import kam.v1.workload.container as c +import service +import service.container as c import network as n import mysql as m # main.k declares customized configurations for prod stacks. wordpress: ac.AppConfiguration { - workload: wl.Service { + workload: service.Service { containers: { wordpress: c.Container { image: "wordpress:6.3" diff --git a/example/wordpress-cloud-rds/project.yaml b/example/wordpress-cloud-rds/project.yaml index 4b3399a7..a24e1ba3 100644 --- a/example/wordpress-cloud-rds/project.yaml +++ b/example/wordpress-cloud-rds/project.yaml @@ -1,4 +1,2 @@ # The project basic info -name: wordpress-cloud-rds -generator: - type: AppConfiguration \ No newline at end of file +name: wordpress-cloud-rds \ No newline at end of file diff --git a/example/wordpress-local-db/prod/kcl.mod b/example/wordpress-local-db/prod/kcl.mod index 511a5a39..0bfc9ba5 100644 --- a/example/wordpress-local-db/prod/kcl.mod +++ b/example/wordpress-local-db/prod/kcl.mod @@ -3,9 +3,10 @@ name = "wordpress-local-db" version = "0.1.0" [dependencies] -kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.1.0" } -network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.1.0" } -mysql = { oci = "oci://ghcr.io/kusionstack/mysql", tag = "0.1.0" } +kam = { git = "https://github.com/KusionStack/kam.git", tag = "0.2.0" } +service = { oci = "oci://ghcr.io/kusionstack/service", tag = "0.1.0" } +network = { oci = "oci://ghcr.io/kusionstack/network", tag = "0.2.0" } +mysql = { oci = "oci://ghcr.io/kusionstack/mysql", tag = "0.2.0" } [profile] entries = ["main.k"] diff --git a/example/wordpress-local-db/prod/main.k b/example/wordpress-local-db/prod/main.k index ff279e8d..b9cf13fb 100644 --- a/example/wordpress-local-db/prod/main.k +++ b/example/wordpress-local-db/prod/main.k @@ -1,12 +1,12 @@ import kam.v1.app_configuration as ac -import kam.v1.workload as wl -import kam.v1.workload.container as c +import service +import service.container as c import network as n import mysql as m # main.k declares customized configurations for prod stack. wordpress: ac.AppConfiguration { - workload: wl.Service { + workload: service.Service { containers: { wordpress: c.Container { image: "wordpress:6.3"