Przeglądaj źródła

HUE-8744 [k8s] Polishing celery worker service

Romain 6 lat temu
rodzic
commit
dc0943ca14

+ 1 - 22
tools/kubernetes/README.md

@@ -41,7 +41,7 @@ or
 ```
 sudo snap install microk8s --classic
 
-snap alias microk8s.kubectl kubectl
+sudo snap alias microk8s.kubectl kubectl
 
 microk8s.enable metrics-server dns
 ```
@@ -54,27 +54,6 @@ sudo snap install helm --classic
 helm init
 ```
 
-If in Dev, for having the provisioner run properly:
-
-```
-kubectl create clusterrolebinding serviceaccounts-cluster-admin --clusterrole=cluster-admin --group=system:serviceaccounts
-```
-
-### GKE
-
-Install Helm onto GKE cluster requires creating a service account with the correct
-permissions:
-
-```
-kubectl create serviceaccount --namespace kube-system tiller
-kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
-kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'
-helm init --service-account tiller --upgrade
-```
-
-On GKE, this chart uses a LoadBalancer to route to Traefik rather than using the GKE
-HTTP LoadBalancer. This avoids creating global static ips.
-
 ## Images
 
 All the images are on Docker Hub or can be built via Docker at [tools/docker](/tools/docker).

+ 46 - 0
tools/kubernetes/helm/hue/README.md

@@ -27,3 +27,49 @@ By default you should see these running containers:
 ## Uninstall
 
     helm delete hue --purge
+
+
+
+helm install stable/nginx-ingress -n nginx-ingress
+kubectl get svc --namespace=ingress-nginx
+
+
+kubectl apply -f https://raw.githubusercontent.com/jetstack/cert-manager/release-0.8/deploy/manifests/00-crds.yaml
+
+# Create the namespace for cert-manager
+kubectl create namespace cert-manager
+
+# Label the cert-manager namespace to disable resource validation
+kubectl label namespace cert-manager certmanager.k8s.io/disable-validation=true
+
+# Add the Jetstack Helm repository
+helm repo add jetstack https://charts.jetstack.io
+
+# Update your local Helm chart repository cache
+helm repo update
+
+# Install the cert-manager Helm chart
+helm install \
+  --name cert-manager \
+  --namespace cert-manager \
+  --version v0.8.0 \
+  jetstack/cert-manager
+
+kubectl get pods --namespace cert-manager
+
+
+# Check email in config and run
+kubectl create -f tools/kubernetes/yaml/cert-manager/clusterissuer-letsencrypt.yaml
+
+kubectl apply -f ingress-ssl.yaml
+
+
+kubectl create -f prod_issuer.yaml
+
+kubectl describe certificate letsencrypt-prod
+
+
+
+# Quick test
+
+kubectl port-forward svc/hue 8888:8888 --address 0.0.0.0

+ 1 - 1
tools/kubernetes/helm/hue/templates/NOTES.txt

@@ -7,7 +7,7 @@ To check the status of your installation run:
 
 You should be able to execute queries by typing:
 
-  kubectl port-forward svc/hue 8888:8888 &
+  kubectl port-forward svc/hue 8888:8888 --address 0.0.0.0 &
 
 Then opening-up:
 

+ 2 - 0
tools/kubernetes/helm/hue/templates/ingress-hue-basic.yaml

@@ -1,3 +1,4 @@
+{{- if .Values.ingress.create -}}
 apiVersion: extensions/v1beta1
 kind: Ingress
 metadata:
@@ -13,3 +14,4 @@ spec:
         backend:
           serviceName: hue
           servicePort: 80
+{{- end -}}

+ 9 - 55
tools/kubernetes/yaml/celery/worker.yaml

@@ -1,39 +1,3 @@
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: hue-config
-data:
-  hue-ini: |
-    [impala]
-    server_host=hostname.com
----
-apiVersion: v1
-kind: ReplicationController
-metadata:
-  name: hue
-spec:
-  replicas: 1
-  template:
-    metadata:
-      labels:
-        app: hue
-    spec:
-      containers:
-        - name: hue
-          image: gethue/hue:latest
-          imagePullPolicy: Always
-          ports:
-            - containerPort: 8888
-          volumeMounts:
-          - name: config-volume
-            mountPath: /usr/share/hue/desktop/conf/z-hue.ini
-            subPath: hue-ini
-      volumes:
-        - name: config-volume
-          configMap:
-            name: hue-config
----
-
 apiVersion: apps/v1beta2
 kind: Deployment
 metadata:
@@ -52,23 +16,13 @@ spec:
     spec:
       containers:
         - name: celery-worker
-          image: hue
+          image: gethue/hue
           command: ['./build/env/bin/celery', 'worker', '-A', 'desktop', '-l', 'info']
-          env:
-            - name: POSTGRES_USER
-              valueFrom:
-                secretKeyRef:
-                  name: postgres-credentials
-                  key: user
-
-            - name: POSTGRES_PASSWORD
-              valueFrom:
-                secretKeyRef:
-                  name: postgres-credentials
-                  key: password
-
-            - name: POSTGRES_HOST
-              value: postgres-service
-
-            - name: REDIS_HOST
-              value: redis-service
+          volumeMounts:
+          - name: config-volume
+            mountPath: /usr/share/hue/desktop/conf/z-hue.ini
+            subPath: hue-ini
+      volumes:
+        - name: config-volume
+          configMap:
+            name: hue-config