forked from fortra/function-pythonic
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathget-started-app.yaml
More file actions
98 lines (94 loc) · 2.83 KB
/
get-started-app.yaml
File metadata and controls
98 lines (94 loc) · 2.83 KB
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
request:
observed:
composite:
resource:
metadata:
namespace: my-namespace
name: my-app
spec:
image: nginx
resources:
deployment:
resource:
status:
availableReplicas: 2
conditions:
- type: Available
status: 'True'
reason: MinimumReplicasAvailable
message: Deployment has minimum availability
service:
resource:
spec:
clusterIP: 10.96.196.65
input:
composite: |
class Composite(BaseComposite):
def compose(self):
labels = {'example.crossplane.io/app': self.metadata.name}
d = self.resources.deployment('apps/v1', 'Deployment', self.metadata.namespace)
d.metadata.labels = labels
d.spec.replicas = 2
d.spec.selector.matchLabels = labels
d.spec.template.metadata.labels = labels
d.spec.template.spec.containers[0].name = 'app'
d.spec.template.spec.containers[0].image = self.spec.image
d.spec.template.spec.containers[0].ports[0].containerPort = 80
d.ready = d.conditions.Available.status
s = self.resources.service('v1', 'Service', self.metadata.namespace)
s.metadata.labels = labels
s.spec.selector = labels
s.spec.ports[0].protocol = 'TCP'
s.spec.ports[0].port = 8080
s.spec.ports[0].targetPort = 80
s.ready = s.observed.spec.clusterIP
self.status.replicas = d.status.availableReplicas
self.status.address = s.observed.spec.clusterIP
response:
desired:
composite:
resource:
status:
replicas: 2
address: 10.96.196.65
resources:
deployment:
resource:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
example.crossplane.io/app: my-app
namespace: my-namespace
spec:
replicas: 2
selector:
matchLabels:
example.crossplane.io/app: my-app
template:
metadata:
labels:
example.crossplane.io/app: my-app
spec:
containers:
- image: nginx
name: app
ports:
- containerPort: 80
ready: 1
service:
resource:
apiVersion: v1
kind: Service
metadata:
labels:
example.crossplane.io/app: my-app
namespace: my-namespace
spec:
selector:
example.crossplane.io/app: my-app
ports:
- protocol: TCP
port: 8080
targetPort: 80
ready: 1