MCPcopy Create free account
hub / github.com/devfile/api / ComponentUnion

Struct ComponentUnion

pkg/apis/workspaces/v1alpha2/components.go:62–112  ·  view source on GitHub ↗

+union

Source from the content-addressed store, hash-verified

60
61// +union
62type ComponentUnion struct {
63 // Type of component
64 //
65 // +unionDiscriminator
66 // +optional
67 ComponentType ComponentType `json:"componentType,omitempty"`
68
69 // Allows adding and configuring devworkspace-related containers
70 // +optional
71 Container *ContainerComponent `json:"container,omitempty"`
72
73 // Allows importing into the devworkspace the Kubernetes resources
74 // defined in a given manifest. For example this allows reusing the Kubernetes
75 // definitions used to deploy some runtime components in production.
76 //
77 // +optional
78 Kubernetes *KubernetesComponent `json:"kubernetes,omitempty"`
79
80 // Allows importing into the devworkspace the OpenShift resources
81 // defined in a given manifest. For example this allows reusing the OpenShift
82 // definitions used to deploy some runtime components in production.
83 //
84 // +optional
85 Openshift *OpenshiftComponent `json:"openshift,omitempty"`
86
87 // Allows specifying the definition of a volume
88 // shared by several other components
89 // +optional
90 Volume *VolumeComponent `json:"volume,omitempty"`
91
92 // Allows specifying the definition of an image for outer loop builds
93 // +optional
94 Image *ImageComponent `json:"image,omitempty"`
95
96 // Allows importing a plugin.
97 //
98 // Plugins are mainly imported devfiles that contribute components, commands
99 // and events as a consistent single unit. They are defined in either YAML files
100 // following the devfile syntax,
101 // or as `DevWorkspaceTemplate` Kubernetes Custom Resources
102 // +optional
103 // +devfile:overrides:include:omitInPlugin=true
104 Plugin *PluginComponent `json:"plugin,omitempty"`
105
106 // Custom component whose logic is implementation-dependant
107 // and should be provided by the user
108 // possibly through some dedicated controller
109 // +optional
110 // +devfile:overrides:include:omit=true
111 Custom *CustomComponent `json:"custom,omitempty"`
112}
113
114type CustomComponent struct {
115 // Class of component that the associated implementation controller

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected