142 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Org Mode
		
	
	
	
	
	
			
		
		
	
	
			142 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Org Mode
		
	
	
	
	
	
#+TITLE: OpenShift Dev Spaces Setup
 | 
						|
#+DATE: <2024-12-03 Tue>
 | 
						|
#+AUTHOR: James Blair
 | 
						|
 | 
						|
 | 
						|
* Install the dev spaces operator
 | 
						|
 | 
						|
#+NAME: Install dev spaces operator
 | 
						|
#+begin_src tmux
 | 
						|
cat << EOF | oc apply --filename -
 | 
						|
# Create a dedicated namespace for dev spaces
 | 
						|
apiVersion: v1
 | 
						|
kind: Namespace
 | 
						|
metadata:
 | 
						|
  name: openshift-devspaces
 | 
						|
 | 
						|
---
 | 
						|
# Create an operatorgroup resource for the devspaces namespace
 | 
						|
apiVersion: operators.coreos.com/v1
 | 
						|
kind: OperatorGroup
 | 
						|
metadata:
 | 
						|
  name:  devspaces-operator-group
 | 
						|
  namespace:  openshift-devspaces
 | 
						|
 | 
						|
---
 | 
						|
# Create a subscription for the dev spaces operator
 | 
						|
apiVersion: operators.coreos.com/v1alpha1
 | 
						|
kind: Subscription
 | 
						|
metadata:
 | 
						|
  name: openshift-devspaces
 | 
						|
  namespace: openshift-devspaces
 | 
						|
spec:
 | 
						|
  channel: stable
 | 
						|
  installPlanApproval: Automatic
 | 
						|
  source: redhat-operators
 | 
						|
  sourceNamespace: openshift-marketplace
 | 
						|
  name: devspaces
 | 
						|
EOF
 | 
						|
#+end_src
 | 
						|
 | 
						|
 | 
						|
* Create the che cluster resource
 | 
						|
 | 
						|
#+begin_src tmux
 | 
						|
cat << EOF | oc apply --filename -
 | 
						|
apiVersion: org.eclipse.che/v2
 | 
						|
kind: CheCluster
 | 
						|
metadata:
 | 
						|
  name: devspaces
 | 
						|
  namespace: openshift-devspaces
 | 
						|
spec:
 | 
						|
  components:
 | 
						|
    cheServer:
 | 
						|
      debug: false
 | 
						|
      logLevel: INFO
 | 
						|
    dashboard:
 | 
						|
      logLevel: ERROR
 | 
						|
    devWorkspace: {}
 | 
						|
    devfileRegistry: {}
 | 
						|
    imagePuller:
 | 
						|
      enable: false
 | 
						|
      spec: {}
 | 
						|
    metrics:
 | 
						|
      enable: true
 | 
						|
    pluginRegistry: {}
 | 
						|
  containerRegistry: {}
 | 
						|
  devEnvironments:
 | 
						|
    containerBuildConfiguration:
 | 
						|
      openShiftSecurityContextConstraint: container-build
 | 
						|
    defaultNamespace:
 | 
						|
      autoProvision: true
 | 
						|
      template: <username>-devspaces
 | 
						|
    maxNumberOfWorkspacesPerUser: 5
 | 
						|
    maxNumberOfRunningWorkspacesPerUser: 2
 | 
						|
    secondsOfInactivityBeforeIdling: 1800
 | 
						|
    secondsOfRunBeforeIdling: -1
 | 
						|
    security: {}
 | 
						|
    startTimeoutSeconds: 300
 | 
						|
    storage:
 | 
						|
      pvcStrategy: per-user
 | 
						|
  gitServices: {}
 | 
						|
  networking:
 | 
						|
    auth:
 | 
						|
      gateway:
 | 
						|
        configLabels:
 | 
						|
          app: che
 | 
						|
          component: che-gateway-config
 | 
						|
        kubeRbacProxy:
 | 
						|
          logLevel: 0
 | 
						|
        oAuthProxy:
 | 
						|
          cookieExpireSeconds: 86400
 | 
						|
        traefik:
 | 
						|
          logLevel: INFO
 | 
						|
EOF
 | 
						|
#+end_src
 | 
						|
 | 
						|
 | 
						|
* Create a custom devfile sample
 | 
						|
 | 
						|
#+NAME: Create a custom devfile sample
 | 
						|
#+begin_src tmux
 | 
						|
# Create the configmap with sample json config
 | 
						|
oc create configmap getting-started-samples --from-file=samples.json -n openshift-devspaces
 | 
						|
 | 
						|
 | 
						|
# Label the configmap for use by dev spaces
 | 
						|
oc label configmap getting-started-samples app.kubernetes.io/part-of=che.eclipse.org app.kubernetes.io/component=getting-started-samples -n openshift-devspaces
 | 
						|
#+end_src
 | 
						|
 | 
						|
 | 
						|
* Remove default samples
 | 
						|
 | 
						|
#+NAME: Hide default samples
 | 
						|
#+begin_src tmux
 | 
						|
cat << EOF | oc apply --filename -
 | 
						|
apiVersion: org.eclipse.che/v2
 | 
						|
kind: CheCluster
 | 
						|
metadata:
 | 
						|
  name: devspaces
 | 
						|
  namespace: openshift-devspaces
 | 
						|
spec:
 | 
						|
  components:
 | 
						|
    devfileRegistry:
 | 
						|
      disableInternalRegistry: true
 | 
						|
EOF
 | 
						|
#+end_src
 | 
						|
 | 
						|
 | 
						|
* Auto install extensions
 | 
						|
 | 
						|
#+begin_src tmux
 | 
						|
cat << EOF > extensions.json
 | 
						|
{
 | 
						|
    "recommendations": [
 | 
						|
      "redhat.ansible",
 | 
						|
      "redhat.vscode-yaml",
 | 
						|
      "redhat.vscode-redhat-account"
 | 
						|
    ]
 | 
						|
}
 | 
						|
EOF
 | 
						|
#+end_src
 |