-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathFaq.js
245 lines (231 loc) · 8.1 KB
/
Faq.js
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
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
import React from 'react';
import {
createStyles,
Title,
Container,
Accordion,
ThemeIcon,
Button,
Group,
} from '@mantine/core';
import {
Book,
BrandGithub,
BrandSlack,
Dashboard,
Plus,
} from 'tabler-icons-react';
const useStyles = createStyles((theme, _params, getRef) => {
const icon = getRef('control');
return {
wrapper: {
paddingTop: theme.spacing.xl * 2,
minHeight: 700,
background:
'linear-gradient(180deg, rgb(52 52 52) 0%, rgb(35 35 35) 50%, rgb(10 10 10) 100%)',
position: 'relative',
},
title: {
color: theme.white,
fontSize: 40,
fontFamily: `Greycliff CF, ${theme.fontFamily}`,
marginBottom: theme.spacing.xl * 1.5,
},
item: {
marginTop: theme.spacing.xl,
backgroundColor: theme.white,
borderBottom: 0,
borderRadius: theme.radius.md,
boxShadow: theme.shadows.lg,
},
control: {
fontSize: theme.fontSizes.lg,
padding: `${theme.spacing.lg}px ${theme.spacing.xl}px`,
color: theme.black,
'&:hover': {
backgroundColor: 'transparent',
},
},
content: {
paddingLeft: theme.spacing.xl,
lineHeight: 1.6,
color: theme.black,
},
icon: {
ref: icon,
marginLeft: theme.spacing.md,
},
gradient: {
backgroundImage: `radial-gradient(${
theme.colors[theme.primaryColor][6]
} 0%, ${theme.colors[theme.primaryColor][5]} 100%)`,
},
itemOpened: {
[`& .${icon}`]: {
transform: 'rotate(0deg)',
},
},
button: {
display: 'block',
marginTop: theme.spacing.md,
'@media (max-width: 755px)': {
display: 'block',
width: '100%',
},
},
};
});
export function FaqSimple() {
const { classes } = useStyles();
return (
<div className={classes.wrapper}>
<Container size="sm">
<Title align="center" className={classes.title}>
Frequently Asked Questions
</Title>
<Accordion
iconPosition="right"
initialItem={0}
classNames={{
item: classes.item,
itemOpened: classes.itemOpened,
control: classes.control,
icon: classes.icon,
contentInner: classes.content,
}}
icon={
<ThemeIcon radius="xl" color="yellow" size={32}>
<Plus size={18} />
</ThemeIcon>
}
>
<Accordion.Item label="How can I get access to my service/cluster?">
<p>
Check the{' '}
<a href="https://www.operate-first.cloud/apps/content/README.html">
operational docs
</a>{' '}
for the service. See if there's a section on how to access
it. This will often instruct you on how to self provision access
via a github PR. You need some basic git knowledge.
<br />
If you want someone to do it for you, you can make an issue in
github support, but keep in mind the turnaround time for this is
highly dependent on current workload of operations team.
</p>
<Group>
<Button
leftIcon={<Book />}
className={classes.button}
component="a"
href="https://www.operate-first.cloud/apps/content/README.html"
>
Operations Docs
</Button>
<Button
leftIcon={<BrandGithub />}
className={classes.button}
component="a"
href="https://github.com/operate-first/support/issues/new/choose"
>
Create a issue
</Button>
</Group>
</Accordion.Item>
<Accordion.Item label="Does Operate First have a particular operator/service?">
<p>
Check the docs{' '}
<a href="https://www.operate-first.cloud/apps/content/README.html">
https://www.operate-first.cloud/apps/content/README.html
</a>
, check workloads dashboards:{' '}
<a href="https://www.operate-first.cloud/community-cloud">
https://www.operate-first.cloud/community-cloud
</a>{' '}
If it's listed there we probably have it. You can also check
the apps repo:{' '}
<a href="https://github.com/operate-first/apps">
https://github.com/operate-first/apps
</a>
. <br /> <br />
For operators, if it's listed{' '}
<a href="https://github.com/operate-first/apps/tree/master/cluster-scope/base/operators.coreos.com/subscriptions">
here
</a>
. We probably have it in at least one of our clusters. To
determine which one,
<br />I would check the{' '}
<code>
apps/cluster-scope/overlays/prod/<env>/<cluster>/kustomization.yaml
</code>{' '}
(some of them might appear as bundles).
</p>
<p>
For other services, check the apps repo root, if a directory for
that service exists, we probably have it in one of our clusters,
check overlays sub folder to see which ones.
</p>
<Group>
<Button
leftIcon={<Book />}
className={classes.button}
component="a"
href="https://www.operate-first.cloud/apps/content/README.html"
>
Operations Docs
</Button>
<Button
leftIcon={<Dashboard />}
className={classes.button}
component="a"
href="https://www.operate-first.cloud/community-cloud"
>
Workload dashboards
</Button>
</Group>
</Accordion.Item>
<Accordion.Item label="How can I get hardware for free?">
<p>
We are not here to hand out free hardware. Our intended goal is to
invite developers/service maintainers to come use our environments
to develop, deploy, and operate their services in an open fashion.
You should be able to make a case on how you are planning to do
this with our clusters. An example of how to do this is to get
onboarded to one of our namespaces, follow a gitops model to store
your application manifests in a transparent version control hub
like github. We also offer a public{' '}
<a href="https://www.operate-first.cloud/apps/content/argocd-gitops/docs/README.html">
ArgoCD
</a>{' '}
instance that you can use to do this. Make your service available
in our{' '}
<a href="https://www.operate-first.cloud/community-cloud">
workloads dashboards
</a>
. Provide instructions on how others can access / use your
service. Provide monitoring capabilities for your service, and
some commitment on your part to maintain/operate this service. We
would of course walk you through/help you out in this process.
</p>
</Accordion.Item>
<Accordion.Item label="Is a certain service down?">
<p>
We don't have an uptime dashboard/page yet, so you will
basically have to ask in the #support slack channel or make an
issue in the github repo.
</p>
<Button
leftIcon={<BrandSlack />}
className={classes.button}
component="a"
href="https://join.slack.com/t/operatefirst/shared_invite/zt-o2gn4wn8-O39g7sthTAuPCvaCNRnLww"
style={{ width: 200 }}
>
Join our Slack
</Button>
</Accordion.Item>
</Accordion>
</Container>
</div>
);
}