{{ if .Values.openshift }} # For openshift --- apiVersion: v1 kind: ProjectRequest metadata: name: fission labels: name: fission --- apiVersion: v1 kind: ProjectRequest metadata: name: {{ .Values.functionNamespace }} labels: name: fission-function --- apiVersion: v1 kind: ServiceAccount metadata: name: fission-admin namespace: {{ .Release.Namespace }} --- apiVersion: v1 kind: ClusterRole metadata: name: fission:fission-admin rules: - apiGroups: - extensions attributeRestrictions: null resources: - deployments verbs: - create - get - list - update - watch - apiGroups: - "" attributeRestrictions: null resources: - pods verbs: - get - list - update --- apiVersion: v1 groupNames: null kind: RoleBinding metadata: name: fission:fission-admin namespace: {{ .Values.functionNamespace }} roleRef: name: fission:fission-admin subjects: - kind: ServiceAccount name: fission-admin namespace: {{ .Release.Namespace }} userNames: - system:serviceaccount:fission:fission-admin {{ else }} # For all environments except openshift --- apiVersion: v1 kind: Namespace metadata: name: {{ .Values.functionNamespace }} labels: name: fission-function chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" --- apiVersion: v1 kind: ServiceAccount metadata: name: fission-svc namespace: {{ .Release.Namespace }} --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fission-admin namespace: {{ .Release.Namespace }} subjects: - kind: ServiceAccount name: fission-svc namespace: {{ .Release.Namespace }} roleRef: kind: ClusterRole name: admin apiGroup: rbac.authorization.k8s.io --- kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fission-function-admin namespace: {{ .Values.functionNamespace }} subjects: - kind: ServiceAccount name: fission-svc namespace: {{ .Release.Namespace }} roleRef: kind: ClusterRole name: admin apiGroup: rbac.authorization.k8s.io --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fission-tpr subjects: - kind: ServiceAccount name: fission-svc namespace: {{ .Release.Namespace }} roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io --- apiVersion: v1 kind: ServiceAccount metadata: name: fission-fetcher namespace: {{ .Values.functionNamespace }} --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: fission-fetcher-tpr subjects: - kind: ServiceAccount name: fission-fetcher namespace: {{ .Values.functionNamespace }} roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io {{ end }} --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: controller labels: chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: replicas: 1 template: metadata: labels: svc: controller spec: containers: - name: controller image: "{{ .Values.image }}:{{ .Values.imageTag }}" imagePullPolicy: {{ .Values.pullPolicy }} command: ["/fission-bundle"] args: ["--controllerPort", "8888"] serviceAccount: fission-svc --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: router labels: chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: replicas: 1 template: metadata: labels: svc: router spec: containers: - name: router image: "{{ .Values.image }}:{{ .Values.imageTag }}" imagePullPolicy: {{ .Values.pullPolicy }} command: ["/fission-bundle"] args: ["--routerPort", "8888", "--poolmgrUrl", "http://poolmgr.{{ .Release.Namespace }}"] serviceAccount: fission-svc --- apiVersion: v1 kind: Service metadata: name: poolmgr labels: svc: poolmgr chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: type: ClusterIP ports: - port: 80 targetPort: 8888 selector: svc: poolmgr --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: poolmgr labels: chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: replicas: 1 template: metadata: labels: svc: poolmgr spec: containers: - name: poolmgr image: "{{ .Values.image }}:{{ .Values.imageTag }}" imagePullPolicy: {{ .Values.pullPolicy }} command: ["/fission-bundle"] args: ["--poolmgrPort", "8888", "--namespace", "{{ .Values.functionNamespace }}", "--fission-namespace", "{{ .Release.Namespace }}"] env: - name: FETCHER_IMAGE value: "{{ .Values.fetcherImage }}:{{ .Values.fetcherImageTag }}" - name: FETCHER_IMAGE_PULL_POLICY value: "{{ .Values.pullPolicy }}" serviceAccount: fission-svc --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: kubewatcher labels: chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: replicas: 1 template: metadata: labels: svc: kubewatcher spec: containers: - name: kubewatcher image: "{{ .Values.image }}:{{ .Values.imageTag }}" imagePullPolicy: {{ .Values.pullPolicy }} command: ["/fission-bundle"] args: ["--kubewatcher"] serviceAccount: fission-svc --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: timer labels: chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: replicas: 1 template: metadata: labels: svc: timer spec: containers: - name: timer image: "{{ .Values.image }}:{{ .Values.imageTag }}" imagePullPolicy: {{ .Values.pullPolicy }} command: ["/fission-bundle"] args: ["--timer"] serviceAccount: fission-svc --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: storagesvc labels: chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: replicas: 1 template: metadata: labels: svc: storagesvc spec: containers: - name: storagesvc image: "{{ .Values.image }}:{{ .Values.imageTag }}" imagePullPolicy: {{ .Values.pullPolicy }} command: ["/fission-bundle"] args: ["--storageServicePort", "8000", "--filePath", "/fission"] volumeMounts: - name: fission-storage mountPath: /fission serviceAccount: fission-svc volumes: - name: fission-storage {{- if .Values.persistence.enabled }} persistentVolumeClaim: claimName: {{ .Values.persistence.existingClaim | default "fission-storage-pvc" }} {{- else }} emptyDir: {} {{- end -}}