forked from cloudify-cosmo/cloudify-kubernetes-plugin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplugin.yaml
executable file
·189 lines (172 loc) · 5.97 KB
/
plugin.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
plugins:
kubernetes:
executor: central_deployment_agent
package_name: cloudify-kubernetes-plugin
package_version: '1.0.0'
source: https://github.com/cloudify-incubator/cloudify-kubernetes-plugin/archive/1.0.0.zip
data_types:
cloudify.kubernetes.types.ApiOptions:
properties:
host:
type: string
required: false
description: >
HTTP/HTTPS URL to Kubernetes API
ssl_ca_cert:
type: string
required: false
cert_file:
type: string
required: false
key_file:
type: string
required: false
verify_ssl:
type: string
required: false
cloudify.kubernetes.types.ConfigurationVariant:
description: >
Type representing all Kubernetes API configuration variants.
Each property represents separate variant of configuration.
You should choose one variant and fill in only on property.
properties:
blueprint_file_name:
type: string
required: false
description: >
Name of Kubernetes configuration file attached to blueprint
manager_file_path:
type: string
required: false
description: >
Path to Kubernetes configuration file placed on Cloudify Manager VM
file_content:
description: ''
required: false
description: >
Content (YAML) of Kubernetes configuration file
api_options:
type: cloudify.kubernetes.types.ApiOptions
required: false
description: >
Set of basic properties describing Kubernetes API access
cloudify.kubernetes.types.ApiMappingEntry:
description: >
Type defining python Kubernetes API objects and methods definitions for particular operation
properties:
api:
type: string
description: >
Name of python Kubernetes API object which will be used to as request for particular operation type
required: true
method:
type: string
description: >
Method name of python Kubernetes API object which will be used as request for particular operation type
required: true
payload:
type: string
description: >
Name of python Kubernetes API object which will be used as request data for particular operation type
required: false
cloudify.kubernetes.types.ApiMapping:
description: >
Type containing python Kubernetes API objects and methods definitions for all supported operations
properties:
create:
type: cloudify.kubernetes.types.ApiMappingEntry
description: >
Python Kubernetes API objects and methods definitions for create operation
read:
type: cloudify.kubernetes.types.ApiMappingEntry
description: >
Python Kubernetes API objects and methods definitions for read operation
delete:
type: cloudify.kubernetes.types.ApiMappingEntry
description: >
Python Kubernetes API objects and methods definitions for delete operation
cloudify.kubernetes.types.ResourceDefinition:
description: >
Type defining single Kubernetes resource e.g. Pod, Sevice, ...
It is some kind of wrapper for native Kubernetes YAML definition
properties:
apiVersion:
type: string
description: >
Kubernetes API version as a string
default: v1
metadata:
description: >
Metadata section related to single Kubernetes resource
spec:
description: >
Kuberneres resource object specification
node_types:
cloudify.kubernetes.nodes.Master:
derived_from: cloudify.nodes.Root
properties:
configuration:
type: cloudify.kubernetes.types.ConfigurationVariant
description: >
Configuration properties of Kubernetes API. One of four configuration options can be used
1. Kubernetes config file contained by blueprint archive
2. Kubernetes config file previouly uploaded into Cloudify Manager VM
3. Content of Kubernetes config file (YAML)
4. Kubernetes API set o properties
cloudify.kubernetes.resources.Main:
derived_from: cloudify.nodes.Root
properties:
definition:
type: cloudify.kubernetes.types.ResourceDefinition
description: >
Definition of resource object using native Kubernetes YAML spec
options:
description: >
API options depending on API operations execution
default:
namespace: default
_api_mapping:
type: cloudify.kubernetes.types.ApiMapping
description: >
Python Kubernetes API objects and methods definitions used for given resource type
interfaces:
cloudify.interfaces.lifecycle:
create:
implementation: kubernetes.cloudify_kubernetes.tasks.resource_create
delete:
implementation: kubernetes.cloudify_kubernetes.tasks.resource_delete
cloudify.kubernetes.resources.Pod:
derived_from: cloudify.kubernetes.resources.Main
properties:
_api_mapping:
default:
create:
api: CoreV1Api
method: create_namespaced_pod
payload: V1Pod
read:
api: CoreV1Api
method: read_namespaced_pod
delete:
api: CoreV1Api
method: delete_namespaced_pod
payload: V1DeleteOptions
cloudify.kubernetes.resources.Service:
derived_from: cloudify.kubernetes.resources.Main
properties:
_api_mapping:
default:
create:
api: CoreV1Api
method: create_namespaced_service
payload: V1Service
read:
api: CoreV1Api
method: read_namespaced_service
delete:
api: CoreV1Api
method: delete_namespaced_service
payload: V1DeleteOptions
relationships:
cloudify.kubernetes.relationships.managed_by_master:
derived_from: cloudify.relationships.connected_to