1
0
mirror of https://github.com/rancher/types.git synced 2025-07-05 09:46:13 +00:00

more catalog types

This commit is contained in:
Daishan Peng 2018-04-01 17:20:25 -07:00 committed by Darren Shepherd
parent 681245a6f5
commit db0df8bdfa
4 changed files with 67 additions and 26 deletions

View File

@ -92,7 +92,6 @@ type TemplateSpec struct {
}
type TemplateStatus struct {
// todo:
}
type TemplateVersion struct {
@ -114,14 +113,15 @@ type TemplateVersionSpec struct {
MaximumRancherVersion string `json:"maximumRancherVersion,omitempty" yaml:"maximum_rancher_version,omitempty"`
UpgradeFrom string `json:"upgradeFrom,omitempty" yaml:"upgrade_from,omitempty"`
Readme string `json:"readme,omitempty"`
AppReadme string `json:"appReadme,omitempty"`
UpgradeVersionLinks map[string]string `json:"upgradeVersionLinks,omitempty"`
Digest string `json:"digest,omitempty"`
Files []File `json:"files,omitempty"`
Questions []Question `json:"questions,omitempty"`
Files map[string]string `json:"files,omitempty"`
Questions []Question `json:"questions,omitempty"`
}
type TemplateVersionStatus struct {
// todo
}
type File struct {
@ -130,6 +130,26 @@ type File struct {
}
type Question struct {
Variable string `json:"variable,omitempty" yaml:"variable,omitempty"`
Label string `json:"label,omitempty" yaml:"label,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
Type string `json:"type,omitempty" yaml:"type,omitempty"`
Required bool `json:"required,omitempty" yaml:"required,omitempty"`
Default string `json:"default,omitempty" yaml:"default,omitempty"`
Group string `json:"group,omitempty" yaml:"group,omitempty"`
MinLength int `json:"minLength,omitempty" yaml:"min_length,omitempty"`
MaxLength int `json:"maxLength,omitempty" yaml:"max_length,omitempty"`
Min int `json:"min,omitempty" yaml:"min,omitempty"`
Max int `json:"max,omitempty" yaml:"max,omitempty"`
Options []string `json:"options,omitempty" yaml:"options,omitempty"`
ValidChars string `json:"validChars,omitempty" yaml:"valid_chars,omitempty"`
InvalidChars string `json:"invalidChars,omitempty" yaml:"invalid_chars,omitempty"`
Subquestions []SubQuestion `json:"subquestions,omitempty" yaml:"subquestions,omitempty"`
ShowIf string `json:"showIf,omitempty" yaml:"show_if,omitempty"`
ShowSubquestionIf string `json:"showSubquestionIf,omitempty" yaml:"show_subquestion_if,omitempty"`
}
type SubQuestion struct {
Variable string `json:"variable,omitempty" yaml:"variable,omitempty"`
Label string `json:"label,omitempty" yaml:"label,omitempty"`
Description string `json:"description,omitempty" yaml:"description,omitempty"`
@ -144,4 +164,15 @@ type Question struct {
Options []string `json:"options,omitempty" yaml:"options,omitempty"`
ValidChars string `json:"validChars,omitempty" yaml:"valid_chars,omitempty"`
InvalidChars string `json:"invalidChars,omitempty" yaml:"invalid_chars,omitempty"`
ShowIf string `json:"showIf,omitempty" yaml:"show_if,omitempty"`
}
type TemplateContent struct {
metav1.TypeMeta `json:",inline"`
// Standard objects metadata. More info:
// https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#metadata
metav1.ObjectMeta `json:"metadata,omitempty"`
// Specification of the desired behavior of the the cluster. More info:
// https://github.com/kubernetes/community/blob/master/contributors/devel/api-conventions.md#spec-and-status
Data string `json:"data,omitempty"`
}

View File

@ -66,7 +66,8 @@ func catalogTypes(schemas *types.Schemas) *types.Schemas {
}
}).
MustImport(&Version, v3.Template{}).
MustImport(&Version, v3.TemplateVersion{})
MustImport(&Version, v3.TemplateVersion{}).
MustImport(&Version, v3.TemplateContent{})
}
func nativeNodeTypes(schemas *types.Schemas) *types.Schemas {

View File

@ -17,24 +17,24 @@ type App struct {
}
type AppSpec struct {
ProjectName string `json:"projectName,omitempty" norman:"type=reference[/v3/schemas/project]"`
Description string `json:"description,omitempty"`
InstallNamespace string `json:"installNamespace,omitempty"`
ExternalID string `json:"externalId,omitempty"`
Templates map[string]string `json:"templates,omitempty"`
Answers map[string]string `json:"answers,omitempty"`
AnswerValues string `json:"answerValues,omitempty"`
ProjectName string `json:"projectName,omitempty" norman:"type=reference[/v3/schemas/project]"`
Description string `json:"description,omitempty"`
TargetNamespace string `json:"targetNamespace,omitempty"`
ExternalID string `json:"externalId,omitempty"`
Answers map[string]string `json:"answers,omitempty"`
AppRevisionName string `json:"appRevisionName,omitempty" norman:"type=reference[/v3/project/schemas/apprevision]"`
Prune bool `json:"prune,omitempty"`
}
var (
AppConditionInstalled condition.Cond = "installed"
AppConditionUpdated condition.Cond = "updated"
)
type AppStatus struct {
StdOutput []string `json:"stdOutput,omitempty"`
StdError []string `json:"stdError,omitempty"`
Releases []ReleaseInfo `json:"releases,omitempty"`
Conditions []AppCondition `json:"conditions,omitempty"`
Notes string `json:"notes,omitempty"`
Conditions []AppCondition `json:"conditions,omitempty"`
LastAppliedTemplates string `json:"lastAppliedTemplate,omitempty"`
}
type AppCondition struct {
@ -52,10 +52,20 @@ type AppCondition struct {
Message string `json:"message,omitempty"`
}
type ReleaseInfo struct {
Name string `json:"name"`
Version string `json:"version"`
CreateTimestamp string `json:"createTimestamp"`
ModifiedAt string `json:"modifiedAt"`
TemplateVersionID string `json:"templateVersionId"`
type AppRevision struct {
types.Namespaced
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec AppRevisionSpec `json:"spec,omitempty"`
Status AppRevisionStatus `json:"status,omitempty"`
}
type AppRevisionSpec struct{}
type AppRevisionStatus struct {
ProjectName string `json:"projectName,omitempty" norman:"type=reference[/v3/schemas/project]"`
ExternalID string `json:"externalId"`
Answers map[string]string `json:"answers"`
Digest string `json:"digest"`
}

View File

@ -687,14 +687,13 @@ func appTypes(schema *types.Schemas) *types.Schemas {
return schema.
MustImportAndCustomize(&Version, v3.App{}, func(schema *types.Schema) {
schema.ResourceActions = map[string]types.Action{
"upgrade": {
Input: "templateVersionId",
},
"upgrade": {},
"rollback": {
Input: "revision",
},
}
})
}).
MustImport(&Version, v3.AppRevision{})
}
func podTemplateSpecTypes(schemas *types.Schemas) *types.Schemas {