Skip to content

Commit

Permalink
Create workspace devfile (#256)
Browse files Browse the repository at this point in the history
* community registry devfile

Signed-off-by: Michael Valdron <[email protected]>

* include README section on devfile deployments

Signed-off-by: Michael Valdron <[email protected]>

* odo v3 build & deploy ci check

Signed-off-by: Michael Valdron <[email protected]>

* build and deploy commands added for ODC support

Signed-off-by: Michael Valdron <[email protected]>

* odov3_deploy.sh renamed to odov3_build_and_deploy.sh

Signed-off-by: Michael Valdron <[email protected]>

* revise README section on devfile deployments to include recent changes

Signed-off-by: Michael Valdron <[email protected]>

* disable pushing images by default odov3_build_and_deploy.sh

Signed-off-by: Michael Valdron <[email protected]>

* revision to README to correct changes c947f0d reflected for a4a40e6

Signed-off-by: Michael Valdron <[email protected]>

* fix typo '--name community-devfile-registry' to '--name devfile-registry-community' on README.md#L70

Signed-off-by: Michael Valdron <[email protected]>

* remove service account

Signed-off-by: Michael Valdron <[email protected]>

* change 'Test' to 'Check' under odov3-build-deploy job name

Signed-off-by: Michael Valdron <[email protected]>

* revise to include example for overriding the host name variables

Signed-off-by: Michael Valdron <[email protected]>

---------

Signed-off-by: Michael Valdron <[email protected]>
  • Loading branch information
michael-valdron authored Dec 19, 2023
1 parent 85ae7ea commit 7fac76a
Show file tree
Hide file tree
Showing 10 changed files with 666 additions and 2 deletions.
45 changes: 45 additions & 0 deletions .ci/deploy/resources/configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
#
# Copyright Red Hat
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apiVersion: v1
kind: ConfigMap
metadata:
name: devfile-registry
annotations:
qontract.recycle: "true"
registry.version: "2ca701f108df91385368c620cc23cc65b38aaf77"
data:
registry-config.yml: |
version: 0.1
log:
fields:
service: registry
storage:
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
debug:
addr: :5001
prometheus:
enabled: true
path: /metrics
.env.registry-viewer: |
NEXT_PUBLIC_ANALYTICS_WRITE_KEY={{analyticsWriteKey}}
DEVFILE_REGISTRIES=[{"name":"Community","url":"http://localhost:8080","fqdn":"{{hostAlias}}"}]
160 changes: 160 additions & 0 deletions .ci/deploy/resources/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
#
# Copyright Red Hat
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: devfile-registry
name: devfile-registry
spec:
replicas: {{replicas}}
selector:
matchLabels:
app: devfile-registry
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 25%
maxUnavailable: 25%
template:
metadata:
labels:
app: devfile-registry
spec:
volumes:
- name: devfile-registry-storage
emptyDir: {}
- name: config
configMap:
name: devfile-registry
items:
- key: registry-config.yml
path: config.yml
- name: viewer-env-file
configMap:
name: devfile-registry
items:
- key: .env.registry-viewer
path: .env.production
containers:
- image: "{{indexImageName}}:{{indexImageTag}}"
imagePullPolicy: "{{indexPullPolicy}}"
name: devfile-registry
ports:
- containerPort: 8080
livenessProbe:
httpGet:
path: /health
port: 8080
scheme: HTTP
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 3
readinessProbe:
httpGet:
path: /health
port: 8080
scheme: HTTP
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 3
startupProbe:
httpGet:
path: /viewer
port: 3000
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 20
resources:
requests:
cpu: 100m
memory: 64Mi
limits:
cpu: 250m
memory: "{{indexMemoryLimit}}"
env:
- name: REGISTRY_NAME
value: "{{registryName}}"
- name: TELEMETRY_KEY
value: "{{telemetryKey}}"
- image: "{{viewerImageName}}:{{viewerImageTag}}"
imagePullPolicy: "{{viewerPullPolicy}}"
name: devfile-registry-viewer
livenessProbe:
httpGet:
path: /viewer
port: 3000
scheme: HTTP
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 20
readinessProbe:
httpGet:
path: /viewer
port: 3000
scheme: HTTP
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 20
resources:
requests:
cpu: 100m
memory: 64Mi
limits:
cpu: 250m
memory: "{{viewerMemoryLimit}}"
env:
- name: NEXT_PUBLIC_ANALYTICS_WRITE_KEY
value: "{{analyticsWriteKey}}"
- name: DEVFILE_REGISTRIES
value: |-
[{"name":"Community","url":"http://localhost:8080","fqdn":"{{hostAlias}}"}]
volumeMounts:
- name: viewer-env-file
mountPath: /app/.env.production
subPath: .env.production
readOnly: true
- image: "{{ociImageName}}:{{ociImageTag}}"
imagePullPolicy: "{{ociPullPolicy}}"
name: oci-registry
livenessProbe:
httpGet:
path: /v2
port: 5000
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 3
readinessProbe:
httpGet:
path: /v2
port: 5000
initialDelaySeconds: 3
periodSeconds: 10
timeoutSeconds: 3
resources:
requests:
cpu: 1m
memory: 5Mi
limits:
cpu: 100m
memory: "{{ociMemoryLimit}}"
volumeMounts:
- name: devfile-registry-storage
mountPath: "/var/lib/registry"
- name: config
mountPath: "/etc/docker/registry"
readOnly: true
35 changes: 35 additions & 0 deletions .ci/deploy/resources/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#
# Copyright Red Hat
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: devfile-registry
labels:
name: devfile-registry
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- host: "{{hostName}}"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: devfile-registry
port:
number: 8080
29 changes: 29 additions & 0 deletions .ci/deploy/resources/route.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#
# Copyright Red Hat
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apiVersion: route.openshift.io/v1
kind: Route
metadata:
labels:
app: devfile-registry
name: devfile-registry
spec:
host: "{{hostName}}"
to:
kind: Service
name: devfile-registry
weight: 100
port:
targetPort: 8080
37 changes: 37 additions & 0 deletions .ci/deploy/resources/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
#
# Copyright Red Hat
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
apiVersion: v1
kind: Service
metadata:
name: devfile-registry
labels:
app: devfile-registry
spec:
ports:
- name: http
protocol: TCP
port: 8080
targetPort: 8080
- name: oci-metrics
protocol: TCP
port: 5001
targetPort: 5001
- name: index-metrics
protocol: TCP
port: 7071
targetPort: 7071
selector:
app: devfile-registry
Loading

0 comments on commit 7fac76a

Please sign in to comment.