Skip to content

Commit 0d01a61

Browse files
authored
Merge pull request #201 from weaveworks/watcher-infrastructure
Watcher infrastructure for remote clusters and arbitrary target kinds
2 parents b75c5f1 + faa331d commit 0d01a61

File tree

18 files changed

+3277
-659
lines changed

18 files changed

+3277
-659
lines changed
Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
apiVersion: apiextensions.k8s.io/v1
2+
kind: CustomResourceDefinition
3+
metadata:
4+
name: fakes.test.weave.works
5+
spec:
6+
conversion:
7+
strategy: None
8+
group: test.weave.works
9+
names:
10+
kind: Fake
11+
listKind: FakeList
12+
plural: fakes
13+
singular: fake
14+
scope: Namespaced
15+
versions:
16+
- name: v1alpha1
17+
schema:
18+
openAPIV3Schema:
19+
description: Fake is a fake type, for using in tests
20+
properties:
21+
apiVersion:
22+
description: 'APIVersion defines the versioned schema of this representation
23+
of an object. Servers should convert recognized schemas to the latest
24+
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
25+
type: string
26+
kind:
27+
description: 'Kind is a string value representing the REST resource this
28+
object represents. Servers may infer this from the endpoint the client
29+
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
30+
type: string
31+
metadata:
32+
type: object
33+
status:
34+
description: FakeStatus defines the observed state of a Fake
35+
properties:
36+
lastAppliedRevision:
37+
description: The last successfully applied revision. Equals the Revision
38+
of the applied Artifact from the referenced Source.
39+
type: string
40+
41+
conditions:
42+
description: Conditions holds the conditions for the Cluster.
43+
items:
44+
description: "Condition contains details for one aspect of the current
45+
state of this API Resource. --- This struct is intended for direct
46+
use as an array at the field path .status.conditions. For example,
47+
type FooStatus struct{ // Represents the observations of a foo's
48+
current state. // Known .status.conditions.type are: \"Available\",
49+
\"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
50+
// +listType=map // +listMapKey=type Conditions []metav1.Condition
51+
`json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
52+
protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
53+
properties:
54+
lastTransitionTime:
55+
description: lastTransitionTime is the last time the condition
56+
transitioned from one status to another. This should be when
57+
the underlying condition changed. If that is not known, then
58+
using the time when the API field changed is acceptable.
59+
format: date-time
60+
type: string
61+
message:
62+
description: message is a human readable message indicating
63+
details about the transition. This may be an empty string.
64+
maxLength: 32768
65+
type: string
66+
observedGeneration:
67+
description: observedGeneration represents the .metadata.generation
68+
that the condition was set based upon. For instance, if .metadata.generation
69+
is currently 12, but the .status.conditions[x].observedGeneration
70+
is 9, the condition is out of date with respect to the current
71+
state of the instance.
72+
format: int64
73+
minimum: 0
74+
type: integer
75+
reason:
76+
description: reason contains a programmatic identifier indicating
77+
the reason for the condition's last transition. Producers
78+
of specific condition types may define expected values and
79+
meanings for this field, and whether the values are considered
80+
a guaranteed API. The value should be a CamelCase string.
81+
This field may not be empty.
82+
maxLength: 1024
83+
minLength: 1
84+
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
85+
type: string
86+
status:
87+
description: status of the condition, one of True, False, Unknown.
88+
enum:
89+
- "True"
90+
- "False"
91+
- Unknown
92+
type: string
93+
type:
94+
description: type of condition in CamelCase or in foo.example.com/CamelCase.
95+
--- Many .condition.type values are consistent across resources
96+
like Available, but because arbitrary conditions can be useful
97+
(see .node.status.conditions), the ability to deconflict is
98+
important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
99+
maxLength: 316
100+
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
101+
type: string
102+
required:
103+
- lastTransitionTime
104+
- message
105+
- reason
106+
- status
107+
- type
108+
type: object
109+
type: array
110+
type: object
111+
type: object
112+
served: true
113+
storage: true
114+
subresources:
115+
status: {}
116+
status:
117+
acceptedNames:
118+
kind: GitopsCluster
119+
listKind: GitopsClusterList
120+
plural: gitopsclusters
121+
singular: gitopscluster
122+
conditions:
123+
- lastTransitionTime: "2022-08-05T17:42:36Z"
124+
message: no conflicts found
125+
reason: NoConflicts
126+
status: "True"
127+
type: NamesAccepted
128+
- lastTransitionTime: "2022-08-05T17:42:38Z"
129+
message: the initial names have been accepted
130+
reason: InitialNamesAccepted
131+
status: "True"
132+
type: Established
133+
storedVersions:
134+
- v1alpha1

0 commit comments

Comments
 (0)