{{ 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: v1 kind: Service metadata: name: influxdb labels: svc: influxdb chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: type: ClusterIP ports: - port: 8086 targetPort: 8086 selector: svc: influxdb --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: influxdb labels: chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: replicas: 1 template: metadata: labels: svc: influxdb spec: containers: - name: influxdb image: tutum/influxdb env: - name: PRE_CREATE_DB value: fissionFunctionLog - name: ADMIN_USER valueFrom: secretKeyRef: name: influxdb key: username - name: INFLUXDB_INIT_PWD valueFrom: secretKeyRef: name: influxdb key: password --- apiVersion: extensions/v1beta1 kind: DaemonSet metadata: name: logger labels: chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: template: metadata: labels: svc: logger spec: containers: - name: logger image: "{{ .Values.image }}:{{ .Values.imageTag }}" imagePullPolicy: {{ .Values.pullPolicy }} command: ["/fission-bundle"] args: ["--logger"] volumeMounts: - name: container-log mountPath: /var/log/containers readOnly: true - name: docker-log mountPath: /var/lib/docker/containers readOnly: true - name: fission-log mountPath: /var/log/fission readOnly: false ports: - containerPort: 1234 hostPort: 1234 protocol: TCP - name: fluentd image: {{ .Values.logger.fluentdImage }} imagePullPolicy: {{ .Values.pullPolicy }} env: - name: INFLUXDB_ADDRESS value: influxdb - name: INFLUXDB_PORT value: "8086" - name: INFLUXDB_DBNAME value: "fissionFunctionLog" - name: INFLUXDB_USERNAME valueFrom: secretKeyRef: name: influxdb key: username - name: INFLUXDB_PASSWD valueFrom: secretKeyRef: name: influxdb key: password volumeMounts: - name: container-log mountPath: /var/log/containers readOnly: true - name: docker-log mountPath: /var/lib/docker/containers readOnly: true - name: fission-log mountPath: /var/log/fission readOnly: false serviceAccount: fission-svc volumes: - name: container-log hostPath: path: /var/log/containers - name: docker-log hostPath: path: /var/lib/docker/containers - name: fission-log hostPath: path: /var/log/fission --- 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 # # This is commented out until fission-ui allows configuring the # namespace. Right now it just crashes if Release.Namespace != # "fission". # #--- #apiVersion: extensions/v1beta1 #kind: Deployment #metadata: # name: fission-ui # labels: # chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" #spec: # replicas: 1 # template: # metadata: # labels: # svc: fission-ui # spec: # containers: # - name: nginx # image: {{ .Values.fissionUiImage }} # - name: kubectl-proxy # image: lachlanevenson/k8s-kubectl # args: ["proxy", "--port", "8001", "--address", "127.0.0.1"] # serviceAccount: fission-svc --- apiVersion: extensions/v1beta1 kind: Deployment metadata: labels: svc: nats-streaming name: nats-streaming spec: replicas: 1 template: metadata: labels: svc: nats-streaming spec: containers: - name: nats-streaming image: nats-streaming args: ["--cluster_id", "{{ .Values.nats.clusterID }}", "--auth", "{{ .Values.nats.authToken }}"] ports: - containerPort: 4222 hostPort: 4222 protocol: TCP --- apiVersion: extensions/v1beta1 kind: Deployment metadata: name: mqtrigger labels: chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" spec: replicas: 1 template: metadata: labels: svc: mqtrigger spec: containers: - name: mqtrigger image: "{{ .Values.image }}:{{ .Values.imageTag }}" imagePullPolicy: {{ .Values.pullPolicy }} command: ["/fission-bundle"] args: ["--mqt"] env: - name: MESSAGE_QUEUE_TYPE value: nats-streaming - name: MESSAGE_QUEUE_URL value: nats://{{ .Values.nats.authToken }}@nats-streaming:4222 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 -}}