mirror of
https://github.com/kubevela/kubevela.git
synced 2026-08-23 22:46:53 +00:00
* Refactor: use createOrUpdateNamespace as a common util function
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Feat: add ENV webservice handelr
* Fix: fix Env usecase logic
* Feat: Add Delete Env API
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: filter empty addon data
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Feat: split makefiels and make it clear
* Feat: add k8s utils test
* Feat: Add env update interface
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Feat: change env implementation
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: minor fix
* Revert "Fix: minor fix"
This reverts commit 9cafefa65a.
* Fix: use appusecase as parameter
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Refactor: align CLI vela env with new env design
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: minor fix
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Feat: add page index and alias of env
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: fix tests and licence header
* Fix: fix makefile and add default target
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: update build swagger.json
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: change update env api
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: list env with alias
* Feat: add log to env delete
* Fix: can not get app status
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: support update workflow and refactor code
* Fix: lint
* Fix: remove swagger check
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: fix cli vela delete
* Fix: update test
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: update test
Signed-off-by: Jianbo Sun <jianbo.sjb@alibaba-inc.com>
* Fix: app deploy unit test case
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: SortOrderDescending is not effective
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: e2e test case
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Feat: support default project/target/env
* Fix: make test and add swagger
* Fix: use separated datasource for unit test
* Fix: app rollback bug
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: fix e2e test
* Fix: kubeapi driver sort bug
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: e2e test
* Fix: api e2e test
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
* Fix: e2e test fix
* Fix: try fix e2e test
* Fix: api e2e test
Signed-off-by: barnettZQG <barnett.zqg@gmail.com>
Co-authored-by: barnettZQG <barnett.zqg@gmail.com>
103 lines
3.0 KiB
Go
103 lines
3.0 KiB
Go
/*
|
|
Copyright 2021 The KubeVela Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/oam-dev/kubevela/pkg/multicluster"
|
|
)
|
|
|
|
func init() {
|
|
RegistModel(&Cluster{})
|
|
}
|
|
|
|
// ProviderInfo describes the information from provider API
|
|
type ProviderInfo struct {
|
|
Provider string `json:"provider"`
|
|
ClusterID string `json:"clusterID"`
|
|
ClusterName string `json:"clusterName,omitempty"`
|
|
Zone string `json:"zone,omitempty"`
|
|
ZoneID string `json:"zoneID,omitempty"`
|
|
RegionID string `json:"regionID,omitempty"`
|
|
VpcID string `json:"vpcID,omitempty"`
|
|
Labels map[string]string `json:"labels"`
|
|
}
|
|
|
|
const (
|
|
// ClusterStatusHealthy healthy cluster
|
|
ClusterStatusHealthy = "Healthy"
|
|
// ClusterStatusUnhealthy unhealthy cluster
|
|
ClusterStatusUnhealthy = "Unhealthy"
|
|
)
|
|
|
|
var (
|
|
// LocalClusterCreatedTime create time for local cluster, set to late date in order to ensure it is sorted to first
|
|
LocalClusterCreatedTime = time.Date(2999, 1, 1, 0, 0, 0, 0, time.UTC)
|
|
)
|
|
|
|
// Cluster describes the model of cluster in apiserver
|
|
type Cluster struct {
|
|
BaseModel
|
|
Name string `json:"name"`
|
|
Alias string `json:"alias"`
|
|
Description string `json:"description"`
|
|
Icon string `json:"icon"`
|
|
Labels map[string]string `json:"labels"`
|
|
Status string `json:"status"`
|
|
Reason string `json:"reason"`
|
|
Provider ProviderInfo `json:"provider"`
|
|
APIServerURL string `json:"apiServerURL"`
|
|
DashboardURL string `json:"dashboardURL"`
|
|
KubeConfig string `json:"kubeConfig"`
|
|
KubeConfigSecret string `json:"kubeConfigSecret"`
|
|
}
|
|
|
|
// SetCreateTime for local cluster, create time is set to a large date which ensures the order of list
|
|
func (c *Cluster) SetCreateTime(t time.Time) {
|
|
if c.Name == multicluster.ClusterLocalName {
|
|
c.CreateTime = LocalClusterCreatedTime
|
|
c.SetUpdateTime(t)
|
|
} else {
|
|
c.CreateTime = t
|
|
}
|
|
}
|
|
|
|
// TableName table name for datastore
|
|
func (c *Cluster) TableName() string {
|
|
return tableNamePrefix + "cluster"
|
|
}
|
|
|
|
// PrimaryKey primary key for datastore
|
|
func (c *Cluster) PrimaryKey() string {
|
|
return c.Name
|
|
}
|
|
|
|
// Index set to nil for list
|
|
func (c *Cluster) Index() map[string]string {
|
|
index := make(map[string]string)
|
|
if c.Name != "" {
|
|
index["name"] = c.Name
|
|
}
|
|
return index
|
|
}
|
|
|
|
// DeepCopy create a copy of cluster
|
|
func (c *Cluster) DeepCopy() *Cluster {
|
|
return deepCopy(c).(*Cluster)
|
|
}
|