| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- apiVersion: template.openshift.io/v1
- kind: Template
- metadata:
- name: console-plugin-template
- annotations:
- openshift.io/display-name: OpenShift Console Plugin Template
- openshift.io/documentation-url: "https://github.com/spadgett/console-plugin-template"
- description: >-
- nginx HTTP server for an OpenShift console plugin creating using the
- template at https://github.com/spadgett/console-plugin-template
- iconClass: icon-nginx
- tags: openshift,console,plugin,nginx
- parameters:
- - description: Name of your plugin. This name must match the name in the consolePlugin declaration in package.json.
- name: PLUGIN_NAME
- value: console-plugin-template
- required: true
- - description: Namespace for your plugin. The namespace will be created by the template.
- name: NAMESPACE
- value: console-plugin-template
- required: true
- - description: Container image of the plugin.
- name: IMAGE
- value: quay.io/spadgett/console-plugin-template:latest
- required: true
- message: >-
- To enable the plugin on the cluster, run the following command:
- oc patch consoles.operator.openshift.io cluster --patch '{ "spec": { "plugins": ["${PLUGIN_NAME}"] } }' --type=merge
- For more information about using this template, see https://github.com/spadgett/console-plugin-template
- objects:
- - apiVersion: v1
- kind: Namespace
- metadata:
- name: '${NAMESPACE}'
- - apiVersion: apps/v1
- kind: Deployment
- metadata:
- name: '${PLUGIN_NAME}'
- namespace: '${NAMESPACE}'
- labels:
- app: '${PLUGIN_NAME}'
- app.kubernetes.io/component: '${PLUGIN_NAME}'
- app.kubernetes.io/instance: '${PLUGIN_NAME}'
- app.kubernetes.io/part-of: '${PLUGIN_NAME}'
- app.openshift.io/runtime-namespace: '${NAMESPACE}'
- spec:
- replicas: 1
- selector:
- matchLabels:
- app: '${PLUGIN_NAME}'
- template:
- metadata:
- labels:
- app: '${PLUGIN_NAME}'
- spec:
- containers:
- - name: '${PLUGIN_NAME}'
- image: '${IMAGE}'
- ports:
- - containerPort: 9443
- protocol: TCP
- imagePullPolicy: Always
- volumeMounts:
- - name: plugin-serving-cert
- readOnly: true
- mountPath: /var/serving-cert
- - name: nginx-conf
- readOnly: true
- mountPath: /etc/nginx/nginx.conf
- subPath: nginx.conf
- volumes:
- - name: plugin-serving-cert
- secret:
- secretName: plugin-serving-cert
- defaultMode: 420
- - name: nginx-conf
- configMap:
- name: nginx-conf
- defaultMode: 420
- restartPolicy: Always
- dnsPolicy: ClusterFirst
- strategy:
- type: RollingUpdate
- rollingUpdate:
- maxUnavailable: 25%
- maxSurge: 25%
- - apiVersion: v1
- kind: ConfigMap
- metadata:
- name: nginx-conf
- namespace: '${NAMESPACE}'
- labels:
- app: '${PLUGIN_NAME}'
- app.kubernetes.io/part-of: '${PLUGIN_NAME}'
- data:
- nginx.conf: |
- error_log /dev/stdout info;
- events {}
- http {
- access_log /dev/stdout;
- include /etc/nginx/mime.types;
- default_type application/octet-stream;
- keepalive_timeout 65;
- server {
- listen 9443 ssl;
- ssl_certificate /var/serving-cert/tls.crt;
- ssl_certificate_key /var/serving-cert/tls.key;
- root /usr/share/nginx/html;
- }
- }
- - apiVersion: v1
- kind: Service
- metadata:
- annotations:
- service.alpha.openshift.io/serving-cert-secret-name: plugin-serving-cert
- name: '${PLUGIN_NAME}'
- namespace: '${NAMESPACE}'
- labels:
- app: '${PLUGIN_NAME}'
- app.kubernetes.io/component: '${PLUGIN_NAME}'
- app.kubernetes.io/instance: '${PLUGIN_NAME}'
- app.kubernetes.io/part-of: '${PLUGIN_NAME}'
- spec:
- ports:
- - name: 9443-tcp
- protocol: TCP
- port: 9443
- targetPort: 9443
- selector:
- app: '${PLUGIN_NAME}'
- type: ClusterIP
- sessionAffinity: None
- - apiVersion: console.openshift.io/v1alpha1
- kind: ConsolePlugin
- metadata:
- name: '${PLUGIN_NAME}'
- spec:
- displayName: 'Console Plugin Template'
- service:
- name: '${PLUGIN_NAME}'
- namespace: '${NAMESPACE}'
- port: 9443
- basePath: '/'
|