Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Manifest] Cache - MKP deployment #3430

Merged
merged 31 commits into from
Apr 6, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
6994984
Initial execution cache
rui5i Feb 10, 2020
1534782
Merge branch 'master' of https://github.com/kubeflow/pipelines
rui5i Feb 27, 2020
d5ce005
Merge branch 'master' of https://github.com/kubeflow/pipelines
rui5i Mar 3, 2020
fdb3ba4
fix master
rui5i Mar 3, 2020
2b69c1e
Merge branch 'master' of https://github.com/kubeflow/pipelines
rui5i Mar 19, 2020
6a4dca2
Merge branch 'master' of https://github.com/kubeflow/pipelines
rui5i Mar 20, 2020
295f155
Merge branch 'master' of https://github.com/kubeflow/pipelines
rui5i Mar 23, 2020
2f3a7bc
Add cache manifests for mkp deployment
rui5i Mar 23, 2020
d9b4fa2
revert go.sum
rui5i Mar 23, 2020
04d4dcc
Add helm on delete policy for cache deployer job
rui5i Mar 24, 2020
010b749
Change cache deployer job to statefulset
rui5i Mar 25, 2020
89e299f
remove unnecessary cluster role
rui5i Mar 26, 2020
8bbaa93
Merge branch 'master' of https://github.com/kubeflow/pipelines into c…
rui5i Mar 30, 2020
677cc8e
seperate clusterrole and role
rui5i Mar 30, 2020
4366de3
add role and rolebinding to mkp
rui5i Mar 30, 2020
926882a
change secret role to clusterrole
rui5i Mar 30, 2020
7883360
Add cloudsql support to cache
rui5i Mar 31, 2020
39107c4
fix comma
rui5i Apr 2, 2020
76630fd
fix
rui5i Apr 2, 2020
6df9a45
Change cache secret clusterrole to role
rui5i Apr 3, 2020
57b7a0b
merge master
rui5i Apr 3, 2020
97bd65f
Adjust sequences of resources
rui5i Apr 3, 2020
2e33f92
Update values and schema
rui5i Apr 3, 2020
4a0e7d1
Merge branch 'master' of https://github.com/kubeflow/pipelines into c…
rui5i Apr 3, 2020
27bd21d
remove extra tab
rui5i Apr 3, 2020
cbe8bbe
Merge branch 'master' of https://github.com/kubeflow/pipelines into c…
rui5i Apr 3, 2020
b03d78c
Change statefulset to job
rui5i Apr 3, 2020
efdc6e0
Add pod delete permission to cache deployer role
rui5i Apr 3, 2020
9b62a05
Test changing cache deployer job to deployment
rui5i Apr 3, 2020
d5417ef
remove extra permission
rui5i Apr 3, 2020
eedfbda
remove statefulset check
rui5i Apr 6, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,280 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: kubeflow-pipelines-cache-deployer-sa
labels:
app.kubernetes.io/name: {{ .Release.Name }}
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: kubeflow-pipelines-cache
labels:
app.kubernetes.io/name: {{ .Release.Name }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
app: kubeflow-pipelines-cache-deployer-clusterrole
app.kubernetes.io/name: {{ .Release.Name }}
name: kubeflow-pipelines-cache-deployer-clusterrole
rules:
- apiGroups:
- certificates.k8s.io
resources:
- certificatesigningrequests
- certificatesigningrequests/approval
verbs:
- create
- delete
- get
- update
- apiGroups:
- admissionregistration.k8s.io
resources:
- mutatingwebhookconfigurations
verbs:
- create
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
labels:
app: kubeflow-pipelines-cache-deployer-role
app.kubernetes.io/name: {{ .Release.Name }}
name: kubeflow-pipelines-cache-deployer-role
rules:
- apiGroups:
- ""
resources:
- secrets
verbs:
- create
- get
- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
labels:
app: kubeflow-pipelines-cache-role
app.kubernetes.io/name: {{ .Release.Name }}
name: kubeflow-pipelines-cache-role
rules:
- apiGroups:
- ""
resources:
- pods
verbs:
- get
- list
- watch
- update
- patch
- apiGroups:
- ""
resources:
- configmaps
verbs:
- get
- apiGroups:
- argoproj.io
resources:
- workflows
verbs:
- get
- list
- watch
- update
- patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: kubeflow-pipelines-cache-binding
labels:
app.kubernetes.io/name: {{ .Release.Name }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: kubeflow-pipelines-cache-role
subjects:
- kind: ServiceAccount
name: kubeflow-pipelines-cache
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: kubeflow-pipelines-cache-deployer-clusterrolebinding
labels:
app.kubernetes.io/name: {{ .Release.Name }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: kubeflow-pipelines-cache-deployer-clusterrole
subjects:
- kind: ServiceAccount
name: kubeflow-pipelines-cache-deployer-sa
namespace: {{ .Release.Namespace }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: kubeflow-pipelines-cache-deployer-rolebinding
labels:
app.kubernetes.io/name: {{ .Release.Name }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: kubeflow-pipelines-cache-deployer-role
subjects:
- kind: ServiceAccount
name: kubeflow-pipelines-cache-deployer-sa
namespace: {{ .Release.Namespace }}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cache-deployer-deployment
labels:
app: cache-deployer
app.kubernetes.io/name: {{ .Release.Name }}
spec:
replicas: 1
selector:
matchLabels:
app: cache-deployer
app.kubernetes.io/name: {{ .Release.Name }}
template:
metadata:
labels:
app: cache-deployer
app.kubernetes.io/name: {{ .Release.Name }}
spec:
containers:
- name: main
image: {{ .Values.images.cachedeployer }}
imagePullPolicy: Always
env:
- name: NAMESPACE_TO_WATCH
value: {{ .Release.Namespace }}
serviceAccountName: kubeflow-pipelines-cache-deployer-sa
restartPolicy: Always
---
apiVersion: v1
kind: ConfigMap
metadata:
name: cache-configmap
labels:
component: cache-server
data:
{{ if .Values.managedstorage.databaseNamePrefix }}
mysql_database: '{{ .Values.managedstorage.databaseNamePrefix }}_cachedb'
{{ else }}
mysql_database: '{{ .Release.Name | replace "-" "_" | replace "." "_"}}_cachedb'
{{ end }}
mysql_driver: "mysql"
mysql_host: "mysql"
mysql_port: "3306"
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: cache-server
labels:
app: cache-server
app.kubernetes.io/name: {{ .Release.Name }}
spec:
replicas: 1
selector:
matchLabels:
app: cache-server
app.kubernetes.io/name: {{ .Release.Name }}
template:
metadata:
labels:
app: cache-server
app.kubernetes.io/name: {{ .Release.Name }}
spec:
containers:
- name: server
image: {{ .Values.images.cacheserver }}
env:
{{ if .Values.managedstorage.enabled }}
- name: DBCONFIG_USER
valueFrom:
secretKeyRef:
name: mysql-credential
key: username
- name: DBCONFIG_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-credential
key: password
{{ else }}
- name: DBCONFIG_USER
value: 'root'
- name: DBCONFIG_PASSWORD
value: ''
{{ end }}
- name: DBCONFIG_DRIVER
valueFrom:
configMapKeyRef:
name: cache-configmap
key: mysql_driver
- name: DBCONFIG_DB_NAME
valueFrom:
configMapKeyRef:
name: cache-configmap
key: mysql_database
- name: DBCONFIG_HOST_NAME
valueFrom:
configMapKeyRef:
name: cache-configmap
key: mysql_host
- name: DBCONFIG_PORT
valueFrom:
configMapKeyRef:
name: cache-configmap
key: mysql_port
- name: NAMESPACE_TO_WATCH
value: {{ .Release.Namespace }}
args: ["--db_driver=$(DBCONFIG_DRIVER)",
"--db_host=$(DBCONFIG_HOST_NAME)",
"--db_port=$(DBCONFIG_PORT)",
"--db_name=$(DBCONFIG_DB_NAME)",
"--db_user=$(DBCONFIG_USER)",
"--db_password=$(DBCONFIG_PASSWORD)",
"--namespace_to_watch=$(NAMESPACE_TO_WATCH)",
]
imagePullPolicy: Always
ports:
- containerPort: 8443
name: webhook-api
volumeMounts:
- name: webhook-tls-certs
mountPath: /etc/webhook/certs
readOnly: true
volumes:
- name: webhook-tls-certs
secret:
secretName: webhook-server-tls
serviceAccountName: kubeflow-pipelines-cache
---
apiVersion: v1
kind: Service
metadata:
name: cache-server
labels:
app: cache-server
app.kubernetes.io/name: {{ .Release.Name }}
spec:
selector:
app: cache-server
app.kubernetes.io/name: {{ .Release.Name }}
ports:
- port: 443
targetPort: webhook-api
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ images:
visualizationserver: gcr.io/ml-pipeline/google/pipelines/visualizationserver:dummy
metadataenvoy: gcr.io/ml-pipeline/google/pipelines/metadataenvoy:dummy
metadatawriter: gcr.io/ml-pipeline/google/pipelines/metadatawriter:dummy
cacheserver: gcr.io/ml-pipeline/google/pipelines/cacheserver:dummy
cachedeployer: gcr.io/ml-pipeline/google/pipelines/cachedeployer:dummy

gcpSecretName: "user-gcp-sa"
serviceAccountCredential: ""
Expand Down
12 changes: 10 additions & 2 deletions manifests/gcp_marketplace/schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,21 @@ x-google-marketplace:
properties:
images.metadatawriter:
type: FULL
cacheserver:
properties:
images.cacheserver:
type: FULL
cachedeployer:
properties:
images.cachedeployer:
type: FULL
deployerServiceAccount:
roles:
- type: ClusterRole # This is a cluster-wide ClusterRole
rulesType: CUSTOM # We specify our own custom RBAC roles
rules:
- apiGroups: ['apiextensions.k8s.io']
resources: ['customresourcedefinitions']
- apiGroups: ['apiextensions.k8s.io', 'rbac.authorization.k8s.io']
resources: ['customresourcedefinitions', 'clusterroles', 'clusterrolebindings']
verbs: ['*']
clusterConstraints:
resources:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
apiVersion: apps/v1
kind: StatefulSet
kind: Deployment
rui5i marked this conversation as resolved.
Show resolved Hide resolved
metadata:
name: cache-deployer-statefulset
name: cache-deployer-deployment
labels:
app: cache-deployer
spec:
replicas: 1
serviceName: cache-deployer
selector:
matchLabels:
app: cache-deployer
Expand All @@ -25,5 +24,4 @@ spec:
fieldRef:
fieldPath: metadata.namespace
serviceAccountName: kubeflow-pipelines-cache-deployer-sa
restartPolicy: Always
volumeClaimTemplates: []
restartPolicy: Always
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
labels:
app: kubeflow-pipelines-cache-deployer-secret-role
name: kubeflow-pipelines-cache-deployer-secret-role
app: kubeflow-pipelines-cache-deployer-role
name: kubeflow-pipelines-cache-deployer-role
rules:
- apiGroups:
- ""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ metadata:
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: kubeflow-pipelines-cache-deployer-secret-role
name: kubeflow-pipelines-cache-deployer-role
subjects:
- kind: ServiceAccount
name: kubeflow-pipelines-cache-deployer-sa
4 changes: 2 additions & 2 deletions manifests/kustomize/base/cache-deployer/kustomization.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization

resources:
- cache-deployer-secret-role.yaml
- cache-deployer-role.yaml
- cache-deployer-rolebinding.yaml
- cache-deployer-sa.yaml
- cache-deployer-statefulset.yaml
- cache-deployer-deployment.yaml

7 changes: 1 addition & 6 deletions test/deploy-pipeline-lite.sh
Original file line number Diff line number Diff line change
Expand Up @@ -92,17 +92,12 @@ echo "Status of pods after kubectl apply"
kubectl get pods -n ${NAMESPACE}

# wait for all deployments to be successful
# note, after we introduce daemonsets, we need to wait their rollout status here too
# note, after we introduce statefulset and daemonsets, we need to wait their rollout status here too
for deployment in $(kubectl get deployments -n ${NAMESPACE} -o name)
do
kubectl rollout status $deployment -n ${NAMESPACE}
done

for statefulset in $(kubectl get statefulset -n ${NAMESPACE} -o name)
do
kubectl rollout status $statefulset -n ${NAMESPACE}
done

echo "Status of pods after rollouts are successful"
kubectl get pods -n ${NAMESPACE}

Expand Down