Skip to content

Commit

Permalink
Merge branch 'main' into aiproxy/admin
Browse files Browse the repository at this point in the history
  • Loading branch information
HUAHUAI23 committed Jan 8, 2025
2 parents d7d0adf + 60a8ff6 commit 5535557
Show file tree
Hide file tree
Showing 411 changed files with 29,497 additions and 13,825 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/deploy-docs-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,8 +86,8 @@ jobs:
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} #Required
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }} #Required
github-comment: false
# vercel-args: '--local-config vercel.json' # Optional
working-directory: ${{ env.BUILD_PATH }}/build
vercel-args: './build --local-config ./vercel.json' # Optional
working-directory: ${{ env.BUILD_PATH }}

docsOutput:
needs: [ build ]
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/deploy-docs-site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,5 +69,5 @@ jobs:
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }} #Required
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }} #Required
github-comment: false
vercel-args: '--prod'
working-directory: ${{ env.BUILD_PATH }}/build
vercel-args: './build --prod --local-config ./vercel.json'
working-directory: ${{ env.BUILD_PATH }}
4 changes: 2 additions & 2 deletions .github/workflows/services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ jobs:
strategy:
matrix:
## TODO: add more modules
module: [database, pay, account, minio, launchpad, exceptionmonitor, aiproxy]
module: [ database, pay, account, minio, launchpad, exceptionmonitor, aiproxy, devbox ]
steps:
- name: Checkout
uses: actions/checkout@v3
Expand Down Expand Up @@ -184,7 +184,7 @@ jobs:
strategy:
matrix:
## TODO: add more modules
module: [database, pay, account, minio, launchpad, exceptionmonitor, aiproxy]
module: [ database, pay, account, minio, launchpad, exceptionmonitor, aiproxy, devbox ]
steps:
- name: Checkout
uses: actions/checkout@v3
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ Sealos['siːləs] is a cloud operating system distribution based on the Kubernet

+ 🌐 Visit the [Sealos website](https://sealos.io/) for full documentation and useful links.
+ 💬 Join our [Discord server](https://discord.gg/qzBmGGZGk7) is to chat with Sealos developers and other Sealos users. This is a good place to learn about Sealos and Kubernetes, ask questions, and share your experiences.
+ 🐦 Tweet at @sealosio on [Twitter](https://twitter.com/sealosio) and follow us.
+ 🐦 Tweet at @Sailos_io on [Twitter](https://twitter.com/Sailos_io) and follow us.
+ 🐞 Create [GitHub Issues](https://github.com/labring/sealos/issues/new/choose) for bug reports and feature requests.

## 🚧 Roadmap
Expand Down
2 changes: 1 addition & 1 deletion README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ Sealos 是一款以 Kubernetes 为内核的**云操作系统发行版**。它以

- 💬 加入我们的 [Discord服务器](https://discord.gg/qzBmGGZGk7),与 Sealos 开发者和终端用户进行交流。这是了解 Sealos 和 Kubernetes 以及提问和分享经验的理想之地。

- 🐦 在 [Twitter](https://twitter.com/sealosio) 上关注我们。
- 🐦 在 [Twitter](https://twitter.com/Sailos_io) 上关注我们。

- 🐞 请将任何 Sealos 的 Bug、问题和需求提交到 [GitHub Issue](https://github.com/labring/sealos/issues/new/choose)

Expand Down
4 changes: 3 additions & 1 deletion controllers/account/controllers/payment_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ import (
"sync"
"time"

"github.com/labring/sealos/controllers/pkg/utils/env"

"github.com/google/uuid"

"sigs.k8s.io/controller-runtime/pkg/manager"
Expand Down Expand Up @@ -319,7 +321,7 @@ func (r *PaymentReconciler) reconcileNewPayment(payment *accountv1.Payment) erro
if err != nil {
return fmt.Errorf("get payment Interface failed: %w", err)
}
tradeNO, codeURL, err := payHandler.CreatePayment(payment.Spec.Amount/10000, payment.Spec.UserID, "sealos cloud pay [domain="+r.domain+"]")
tradeNO, codeURL, err := payHandler.CreatePayment(payment.Spec.Amount/10000, payment.Spec.UserID, fmt.Sprintf(env.GetEnvWithDefault("PAY_DESCRIBE_FORMAT", `sealos cloud pay [domain="%s"]`), r.domain))
if err != nil {
return fmt.Errorf("get tradeNO and codeURL failed: %w", err)
}
Expand Down
84 changes: 51 additions & 33 deletions controllers/devbox/api/v1alpha1/devbox_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,17 +18,10 @@ package v1alpha1

import (
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

type ResourceName string

const (
// ResourceCPU CPU, in cores. (500m = .5 cores)
ResourceCPU ResourceName = "cpu"
// ResourceMemory Memory, in bytes. (500Gi = 500GiB = 500 * 1024 * 1024 * 1024)
ResourceMemory ResourceName = "memory"
// FinalizerName is the finalizer for Devbox
FinalizerName = "devbox.sealos.io/finalizer"
DevBoxPartOf = "devbox"
Expand All @@ -52,8 +45,6 @@ const (
NetworkTypeTailnet NetworkType = "Tailnet"
)

type ResourceList map[ResourceName]resource.Quantity

type RuntimeRef struct {
// +kubebuilder:validation:Required
Name string `json:"name"`
Expand All @@ -69,46 +60,75 @@ type NetworkSpec struct {
ExtraPorts []corev1.ContainerPort `json:"extraPorts"`
}

type Config struct {
// +kubebuilder:validation:Optional
// +kubebuilder:default=devbox
User string `json:"user"`

// +kubebuilder:validation:Optional
Labels map[string]string `json:"labels,omitempty"`
// +kubebuilder:validation:Optional
Annotations map[string]string `json:"annotations,omitempty"`

// +kubebuilder:validation:Optional
Command []string `json:"command,omitempty"`
// kubebuilder:validation:Optional
Args []string `json:"args,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:default=/home/devbox/project
WorkingDir string `json:"workingDir,omitempty"`
// +kubebuilder:validation:Optional
Env []corev1.EnvVar `json:"env,omitempty"`

// +kubebuilder:validation:Optional
// +kubebuilder:default={/bin/bash,-c}
ReleaseCommand []string `json:"releaseCommand,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:default={/home/devbox/project/entrypoint.sh}
ReleaseArgs []string `json:"releaseArgs,omitempty"`

// TODO: in v1alpha2 api we need fix the port and app port into one field and create a new type for it.
// +kubebuilder:validation:Optional
// +kubebuilder:default={{name:"devbox-ssh-port",containerPort:22,protocol:TCP}}
Ports []corev1.ContainerPort `json:"ports,omitempty"`
// +kubebuilder:validation:Optional
// +kubebuilder:default={{name:"devbox-app-port",port:8080,protocol:TCP}}
AppPorts []corev1.ServicePort `json:"appPorts,omitempty"`

// +kubebuilder:validation:Optional
VolumeMounts []corev1.VolumeMount `json:"volumeMounts,omitempty"`
// +kubebuilder:validation:Optional
Volumes []corev1.Volume `json:"volumes,omitempty"`
}

// DevboxSpec defines the desired state of Devbox
type DevboxSpec struct {
// +kubebuilder:validation:Required
// +kubebuilder:validation:Enum=Running;Stopped
State DevboxState `json:"state"`
// +kubebuilder:validation:Required
Resource ResourceList `json:"resource"`
Resource corev1.ResourceList `json:"resource"`

// +kubebuilder:validation:Optional
// +kubebuilder:default=false
Squash bool `json:"squash"`

// +kubebuilder:validation:Required
RuntimeRef RuntimeRef `json:"runtimeRef"`

// +kubebuilder:validation:Required
NetworkSpec NetworkSpec `json:"network,omitempty"`
Image string `json:"image"`

// todo add rewrite labels and annotations...
// +kubebuilder:validation:Optional
ExtraLabels map[string]string `json:"extraLabels,omitempty"`
// +kubebuilder:validation:Optional
ExtraAnnotations map[string]string `json:"extraAnnotations,omitempty"`
TemplateID string `json:"templateID"`

// +kubebuilder:validation:Optional
Command []string `json:"command,omitempty"`
// +kubebuilder:validation:Optional
Args []string `json:"args,omitempty"`
// +kubebuilder:validation:Optional
WorkingDir string `json:"workingDir,omitempty"`
// todo add rewrite env...
// +kubebuilder:validation:Optional
ExtraEnvs []corev1.EnvVar `json:"extraEnvs"`
// +kubebuilder:validation:Required
Config Config `json:"config"`

// +kubebuilder:validation:Required
NetworkSpec NetworkSpec `json:"network,omitempty"`

// todo add rewrite volumes and volume mounts..
// +kubebuilder:validation:Optional
ExtraVolumes []corev1.Volume `json:"extraVolumes,omitempty"`
RuntimeClassName string `json:"runtimeClassName,omitempty"`
// +kubebuilder:validation:Optional
ExtraVolumeMounts []corev1.VolumeMount `json:"extraVolumeMounts,omitempty"`

NodeSelector map[string]string `json:"nodeSelector,omitempty"`
// +kubebuilder:validation:Optional
Tolerations []corev1.Toleration `json:"tolerations,omitempty"`
// +kubebuilder:validation:Optional
Expand Down Expand Up @@ -189,8 +209,6 @@ type DevboxStatus struct {
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="State",type="string",JSONPath=".spec.state"
// +kubebuilder:printcolumn:name="RuntimeRef",type="string",JSONPath=".spec.runtimeRef.name"
// +kubebuilder:printcolumn:name="PodPhase",type="string",JSONPath=".status.podPhase"
// +kubebuilder:printcolumn:name="NetworkType",type="string",JSONPath=".status.network.type"
// +kubebuilder:printcolumn:name="NodePort",type="integer",JSONPath=".status.network.nodePort"
// +kubebuilder:printcolumn:name="Phase",type="string",JSONPath=".status.phase"
Expand Down
140 changes: 0 additions & 140 deletions controllers/devbox/api/v1alpha1/runtime_types.go

This file was deleted.

Loading

0 comments on commit 5535557

Please sign in to comment.