Skip to content

Commit

Permalink
update Helm seldon-core helm chart - yaml, use release names, rbacs u…
Browse files Browse the repository at this point in the history
…pdates
  • Loading branch information
ukclivecox committed Jun 30, 2018
1 parent c587b1a commit 48fe403
Show file tree
Hide file tree
Showing 9 changed files with 449 additions and 237 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
package io.seldon.clustermanager.k8s;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.lang.reflect.Type;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
Expand Down Expand Up @@ -29,7 +32,7 @@ public class CRDCreator {
protected static Logger logger = LoggerFactory.getLogger(CRDCreator.class.getName());
public void createCRD() throws IOException, ApiException
{
String jsonStr = readFile("src/main/resources/crd.json",StandardCharsets.UTF_8);
String jsonStr = readFileFromClasspath("crd.json");
ApiClient client = Config.defaultClient();
try {
createCustomResourceDefinition(client,jsonStr.getBytes(),null);
Expand All @@ -39,13 +42,35 @@ public void createCRD() throws IOException, ApiException
{
logger.info("CRD already exists - ignoring.");
}
else if (e.getCode() == 403)// Forbidden - Maybe CRD exists, but we don't know
{
logger.warn("No auth to create CRD. Hopefully, one exists.",e); // Hopefully a cluster-wide CRD has been created for us
}
else
{
logger.error("Failed to create CRD",e);
logger.warn("Unexpected error trying to create CRD",e);
throw e;
}
}
}
private String readFromInputStream(InputStream inputStream)
throws IOException {
StringBuilder resultStringBuilder = new StringBuilder();
try (BufferedReader br
= new BufferedReader(new InputStreamReader(inputStream))) {
String line;
while ((line = br.readLine()) != null) {
resultStringBuilder.append(line).append("\n");
}
}
return resultStringBuilder.toString();
}
private String readFileFromClasspath(String name) throws IOException
{
InputStream in = this.getClass().getClassLoader().getResourceAsStream(name);
String data = readFromInputStream(in);
return data;
}

private String readFile(String path, Charset encoding)
throws IOException
Expand Down
32 changes: 32 additions & 0 deletions helm-charts/seldon-core/templates/_helpers.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "seldon.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "seldon.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}

{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "seldon.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
108 changes: 0 additions & 108 deletions helm-charts/seldon-core/templates/apife-deployment.json

This file was deleted.

78 changes: 78 additions & 0 deletions helm-charts/seldon-core/templates/apife-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
{{- if .Values.apife.enabled }}
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
labels: &Labels
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/component: seldon-core-apiserver
app: seldon-apiserver-container-app
chart: {{ template "seldon.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: seldon-core
name: {{ .Release.Name }}-seldon-apiserver
namespace: {{ .Release.Namespace }}
spec:
replicas: 1
selector:
matchLabels: *Labels
template:
metadata:
annotations:
prometheus.io/path: /prometheus
prometheus.io/port: "8080"
prometheus.io/scrape: "true"
labels: *Labels
spec:
containers:
- env:
- name: SELDON_ENGINE_KAFKA_SERVER
value: kafka:9092
- name: SELDON_CLUSTER_MANAGER_REDIS_HOST
value: {{ .Release.Name }}-redis
- name: SELDON_CLUSTER_MANAGER_POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
image: {{ .Values.apife.image.name }}
imagePullPolicy: {{ .Values.apife.image.pull_policy }}
name: seldon-apiserver-container
ports:
- containerPort: 8080
protocol: TCP
- containerPort: 5000
protocol: TCP
dnsPolicy: ClusterFirst
{{- if .Values.rbac.enabled }}
serviceAccountName: {{ .Values.rbac.service_account.name }}
{{- end }}
terminationGracePeriodSeconds: 30
---
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/component: seldon-core-apiserver
app: seldon-apiserver-container-app
name: {{ .Release.Name }}-seldon-apiserver
spec:
ports:
- name: http
port: 8080
protocol: TCP
targetPort: 8080
- name: grpc
port: 5000
protocol: TCP
targetPort: 5000
selector:
app: seldon-apiserver-container-app
sessionAffinity: None
type: {{ .Values.apife_service_type }}
status:
loadBalancer: {}
{{- end }}
81 changes: 43 additions & 38 deletions helm-charts/seldon-core/templates/cluster-manager-deployment.yaml
Original file line number Diff line number Diff line change
@@ -1,41 +1,46 @@
---
apiVersion: v1
items:
- apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: seldon-cluster-manager
namespace: {{ .Release.Namespace }}
spec:
replicas: 1
template:
metadata:
labels:
app: seldon-cluster-manager-server
spec:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels: &Labels
app.kubernetes.io/name: {{ .Release.Name }}
app.kubernetes.io/component: seldon-core-operator
app: seldon-cluster-manager-server
chart: {{ template "seldon.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
component: seldon-core
name: {{ .Release.Name }}-seldon-cluster-manager
namespace: {{ .Release.Namespace }}
spec:
replicas: 1
selector:
matchLabels: *Labels
template:
metadata:
labels: *Labels
spec:
{{- if .Values.rbac.enabled }}
serviceAccountName: seldon
serviceAccountName: {{ .Values.rbac.service_account.name }}
{{- end }}
containers:
- env:
- name: JAVA_OPTS
value: {{ .Values.cluster_manager.java_opts }}
- name: SPRING_OPTS
value: {{ .Values.cluster_manager.spring_opts }}
- name: SELDON_CLUSTER_MANAGER_REDIS_HOST
value: redis
- name: ENGINE_CONTAINER_IMAGE_AND_VERSION
value: seldonio/engine:{{ .Values.engine.image.tag }}
- name: SELDON_CLUSTER_MANAGER_POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
image: seldonio/cluster-manager:{{ .Values.cluster_manager.image.tag }}
imagePullPolicy: {{ .Values.cluster_manager.image.pull_policy }}
name: seldon-cluster-manager-container
ports:
- containerPort: 8080
protocol: TCP
kind: List
metadata: {}
containers:
- env:
- name: JAVA_OPTS
value: {{ .Values.cluster_manager.java_opts }}
- name: SPRING_OPTS
value: {{ .Values.cluster_manager.spring_opts }}
- name: SELDON_CLUSTER_MANAGER_REDIS_HOST
value: redis
- name: ENGINE_CONTAINER_IMAGE_AND_VERSION
value: {{ .Values.engine.image.name }}
- name: SELDON_CLUSTER_MANAGER_POD_NAMESPACE
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.namespace
image: {{ .Values.cluster_manager.image.name }}
imagePullPolicy: {{ .Values.cluster_manager.image.pull_policy }}
name: seldon-cluster-manager-container
ports:
- containerPort: 8080
protocol: TCP
Loading

0 comments on commit 48fe403

Please sign in to comment.