update kfctl_ibm KfDef to kustomize v3 (#1246)
* update kfctl_ibm kfdef to kustomize v3 * small update to README * update to use katib, minio and mysql generic * update after platform test * fix test failure
This commit is contained in:
parent
d6a25c64d7
commit
bc5c7a72cf
|
|
@ -7,6 +7,9 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
nameprefix: application-controller-
|
||||
commonLabels:
|
||||
app.kubernetes.io/component: kubeflow
|
||||
app.kubernetes.io/name: kubeflow
|
||||
resources:
|
||||
- ../application-crds/base
|
||||
- ../application/base/cluster-role.yaml
|
||||
|
|
|
|||
|
|
@ -4,349 +4,96 @@ metadata:
|
|||
namespace: kubeflow
|
||||
spec:
|
||||
applications:
|
||||
# Install istio in a different namespace: istio-system
|
||||
# Remove this application if istio is already installed
|
||||
- kustomizeConfig:
|
||||
parameters:
|
||||
- name: namespace
|
||||
value: istio-system
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: istio/istio-crds
|
||||
name: istio-crds
|
||||
path: stacks/ibm/application/istio-stack
|
||||
name: istio-stack
|
||||
- kustomizeConfig:
|
||||
parameters:
|
||||
- name: namespace
|
||||
value: istio-system
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: istio/istio-install
|
||||
name: istio-install
|
||||
- kustomizeConfig:
|
||||
parameters:
|
||||
- name: namespace
|
||||
value: istio-system
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: istio/cluster-local-gateway
|
||||
path: stacks/ibm/application/cluster-local-gateway
|
||||
name: cluster-local-gateway
|
||||
- kustomizeConfig:
|
||||
parameters:
|
||||
- name: clusterRbacConfig
|
||||
value: 'OFF'
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: istio/istio
|
||||
path: stacks/ibm/application/istio
|
||||
name: istio
|
||||
- kustomizeConfig:
|
||||
parameters:
|
||||
- name: namespace
|
||||
value: istio-system
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: istio/add-anonymous-user-filter
|
||||
path: stacks/ibm/application/add-anonymous-user-filter
|
||||
name: add-anonymous-user-filter
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: application/application-crds
|
||||
name: application-crds
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: application/application
|
||||
path: application/v3
|
||||
name: application
|
||||
- kustomizeConfig:
|
||||
parameters:
|
||||
- name: namespace
|
||||
value: cert-manager
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: cert-manager/cert-manager-crds
|
||||
name: cert-manager-crds
|
||||
- kustomizeConfig:
|
||||
parameters:
|
||||
- name: namespace
|
||||
value: kube-system
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: cert-manager/cert-manager-kube-system-resources
|
||||
name: cert-manager-kube-system-resources
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- self-signed
|
||||
- application
|
||||
parameters:
|
||||
- name: namespace
|
||||
value: cert-manager
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: cert-manager/cert-manager
|
||||
name: cert-manager
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: metacontroller
|
||||
name: metacontroller
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- istio
|
||||
- application
|
||||
parameters:
|
||||
- name: containerRuntimeExecutor
|
||||
value: pns
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: argo
|
||||
name: argo
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: kubeflow-roles
|
||||
name: kubeflow-roles
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- istio
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: common/centraldashboard
|
||||
name: centraldashboard
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: admission-webhook/bootstrap
|
||||
path: stacks/ibm/application/bootstrap
|
||||
name: bootstrap
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: admission-webhook/webhook
|
||||
name: webhook
|
||||
path: stacks/ibm/application/cert-manager-crds
|
||||
name: cert-manager-crds
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- istio
|
||||
- application
|
||||
parameters:
|
||||
- name: userid-header
|
||||
value: kubeflow-userid
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: jupyter/jupyter-web-app
|
||||
name: jupyter-web-app
|
||||
path: stacks/ibm/application/cert-manager-kube-system-resources
|
||||
name: cert-manager-kube-system-resources
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: spark/spark-operator
|
||||
name: spark-operator
|
||||
path: stacks/ibm/application/cert-manager
|
||||
name: cert-manager
|
||||
# Install Kubeflow applications.
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- istio
|
||||
- application
|
||||
- ibm-storage-config
|
||||
- db
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: metadata
|
||||
path: stacks/ibm
|
||||
name: kubeflow-apps
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: metacontroller/base
|
||||
name: metacontroller
|
||||
- kustomizeConfig:
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: stacks/ibm/application/metadata
|
||||
name: metadata
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- istio
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: jupyter/notebook-controller
|
||||
name: notebook-controller
|
||||
path: stacks/ibm/application/spark-operator
|
||||
name: spark-operator
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: pytorch-job/pytorch-job-crds
|
||||
name: pytorch-job-crds
|
||||
path: knative/installs/generic
|
||||
name: knative
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: pytorch-job/pytorch-operator
|
||||
name: pytorch-operator
|
||||
path: kfserving/installs/generic
|
||||
name: kfserving
|
||||
# Spartakus is a separate applications so that kfctl can remove it
|
||||
# to disable usage reporting
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
parameters:
|
||||
- name: namespace
|
||||
value: knative-serving
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: knative/knative-serving-crds
|
||||
name: knative-crds
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
parameters:
|
||||
- name: namespace
|
||||
value: knative-serving
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: knative/knative-serving-install
|
||||
name: knative-install
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: kfserving/kfserving-crds
|
||||
name: kfserving-crds
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: kfserving/kfserving-install
|
||||
name: kfserving-install
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
parameters:
|
||||
- name: usageId
|
||||
value: <randomly-generated-id>
|
||||
- name: reportUsage
|
||||
value: 'true'
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: common/spartakus
|
||||
path: stacks/ibm/application/spartakus
|
||||
name: spartakus
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- istio
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: tensorboard
|
||||
path: stacks/ibm/application/tensorboard
|
||||
name: tensorboard
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: tf-training/tf-job-crds
|
||||
name: tf-job-crds
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: tf-training/tf-job-operator
|
||||
name: tf-job-operator
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: katib/katib-crds
|
||||
name: katib-crds
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
- istio
|
||||
- ibm-storage-config
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: katib/katib-controller
|
||||
name: katib-controller
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: pipeline/api-service
|
||||
name: api-service
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
parameters:
|
||||
- name: minioPvcName
|
||||
value: minio-pv-claim
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: pipeline/minio
|
||||
name: minio
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
parameters:
|
||||
- name: mysqlPvcName
|
||||
value: mysql-pv-claim
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: pipeline/mysql
|
||||
name: mysql
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: pipeline/persistent-agent
|
||||
name: persistent-agent
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: pipeline/pipelines-runner
|
||||
name: pipelines-runner
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- istio
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: pipeline/pipelines-ui
|
||||
name: pipelines-ui
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: pipeline/pipelines-viewer
|
||||
name: pipelines-viewer
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: pipeline/scheduledworkflow
|
||||
name: scheduledworkflow
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: pipeline/pipeline-visualization-service
|
||||
name: pipeline-visualization-service
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
- istio
|
||||
parameters:
|
||||
- name: admin
|
||||
value: example@kubeflow.org
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: profiles
|
||||
name: profiles
|
||||
- kustomizeConfig:
|
||||
overlays:
|
||||
- application
|
||||
repoRef:
|
||||
name: manifests
|
||||
path: seldon/seldon-core-operator
|
||||
name: seldon-core-operator
|
||||
repos:
|
||||
- name: manifests
|
||||
uri: https://github.com/kubeflow/manifests/archive/master.tar.gz
|
||||
|
|
|
|||
|
|
@ -2,17 +2,17 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../kfserving-crds/base
|
||||
- ../kfserving-crds/overlays/application
|
||||
- ../kfserving-install/base/cert.yaml
|
||||
- ../kfserving-install/base/config-map.yaml
|
||||
- ../kfserving-install/base/cluster-role-binding.yaml
|
||||
- ../kfserving-install/base/cluster-role.yaml
|
||||
- ../kfserving-install/base/secret.yaml
|
||||
- ../kfserving-install/base/statefulset.yaml
|
||||
- ../kfserving-install/base/service.yaml
|
||||
- ../kfserving-install/base/webhook.yaml
|
||||
- ../kfserving-install/overlays/application
|
||||
- ../../kfserving-crds/base
|
||||
- ../../kfserving-crds/overlays/application
|
||||
- ../../kfserving-install/base/cert.yaml
|
||||
- ../../kfserving-install/base/config-map.yaml
|
||||
- ../../kfserving-install/base/cluster-role-binding.yaml
|
||||
- ../../kfserving-install/base/cluster-role.yaml
|
||||
- ../../kfserving-install/base/secret.yaml
|
||||
- ../../kfserving-install/base/statefulset.yaml
|
||||
- ../../kfserving-install/base/service.yaml
|
||||
- ../../kfserving-install/base/webhook.yaml
|
||||
- ../../kfserving-install/overlays/application
|
||||
commonLabels:
|
||||
app: kfserving
|
||||
kustomize.component: kfserving
|
||||
|
|
@ -21,9 +21,11 @@ commonLabels:
|
|||
app.kuberenets.io/name: kfserving-install
|
||||
app.kuberenets.io/managed-by: kfctl
|
||||
app.kuberenets.io/part-of: kubeflow
|
||||
generatorOptions:
|
||||
disableNameSuffixHash: true
|
||||
configMapGenerator:
|
||||
- envs:
|
||||
- ../kfserving-install/base/params.env
|
||||
- ../../kfserving-install/base/params.env
|
||||
name: kfserving-config
|
||||
vars:
|
||||
- name: registry
|
||||
|
|
@ -34,7 +36,7 @@ vars:
|
|||
fieldref:
|
||||
fieldpath: data.registry
|
||||
configurations:
|
||||
- ../kfserving-install/base/params.yaml
|
||||
- ../../kfserving-install/base/params.yaml
|
||||
images:
|
||||
- name: gcr.io/kubebuilder/kube-rbac-proxy
|
||||
newName: gcr.io/kubebuilder/kube-rbac-proxy
|
||||
|
|
@ -2,25 +2,24 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||
kind: Kustomization
|
||||
namespace: knative-serving
|
||||
resources:
|
||||
- ../knative-serving-crds/base
|
||||
- ../knative-serving-crds/overlays/application
|
||||
- ../knative-serving-install/base/gateway.yaml
|
||||
- ../knative-serving-install/base/cluster-role.yaml
|
||||
- ../knative-serving-install/base/cluster-role-binding.yaml
|
||||
- ../knative-serving-install/base/service-role.yaml
|
||||
- ../knative-serving-install/base/service-role-binding.yaml
|
||||
- ../knative-serving-install/base/role-binding.yaml
|
||||
- ../knative-serving-install/base/config-map.yaml
|
||||
- ../knative-serving-install/base/deployment.yaml
|
||||
- ../knative-serving-install/base/service-account.yaml
|
||||
- ../knative-serving-install/base/service.yaml
|
||||
- ../knative-serving-install/base/apiservice.yaml
|
||||
- ../knative-serving-install/base/image.yaml
|
||||
- ../knative-serving-install/base/hpa.yaml
|
||||
- ../knative-serving-install/base/webhook-configuration.yaml
|
||||
- ../knative-serving-install/overlays/application
|
||||
- ../../knative-serving-crds/base
|
||||
- ../../knative-serving-crds/overlays/application
|
||||
- ../../knative-serving-install/base/gateway.yaml
|
||||
- ../../knative-serving-install/base/cluster-role.yaml
|
||||
- ../../knative-serving-install/base/cluster-role-binding.yaml
|
||||
- ../../knative-serving-install/base/service-role.yaml
|
||||
- ../../knative-serving-install/base/service-role-binding.yaml
|
||||
- ../../knative-serving-install/base/role-binding.yaml
|
||||
- ../../knative-serving-install/base/config-map.yaml
|
||||
- ../../knative-serving-install/base/deployment.yaml
|
||||
- ../../knative-serving-install/base/service-account.yaml
|
||||
- ../../knative-serving-install/base/service.yaml
|
||||
- ../../knative-serving-install/base/apiservice.yaml
|
||||
- ../../knative-serving-install/base/image.yaml
|
||||
- ../../knative-serving-install/base/hpa.yaml
|
||||
- ../../knative-serving-install/base/webhook-configuration.yaml
|
||||
- ../../knative-serving-install/overlays/application
|
||||
commonLabels:
|
||||
app: knative
|
||||
kustomize.component: knative
|
||||
app.kubernetes.io/component: knative-serving-install
|
||||
app.kuberenets.io/instance: knative-serving-install
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
approvers:
|
||||
- adrian555
|
||||
- animeshsingh
|
||||
- tomcli
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: minio
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
volumes:
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: $(minioPvcName)
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
commonLabels:
|
||||
app.kubernetes.io/component: minio
|
||||
app.kubernetes.io/name: minio
|
||||
resources:
|
||||
- ../../../upstream/env/platform-agnostic/minio/
|
||||
- ../../../upstream/base/argo/minio-artifact-secret.yaml # TODO: move it to minio/ folder
|
||||
- ../../overlays/application/application.yaml
|
||||
- persistent-volume-claim.yaml
|
||||
patchesStrategicMerge:
|
||||
- deployment-patch.yaml
|
||||
generatorOptions:
|
||||
disableNameSuffixHash: true
|
||||
configMapGenerator:
|
||||
- name: pipeline-minio-parameters
|
||||
envs:
|
||||
- params.env
|
||||
vars:
|
||||
- name: minioPvcName
|
||||
objref:
|
||||
kind: ConfigMap
|
||||
name: pipeline-minio-parameters
|
||||
apiVersion: v1
|
||||
fieldref:
|
||||
fieldpath: data.minioPvcName
|
||||
images:
|
||||
- name: minio/minio
|
||||
newTag: RELEASE.2018-02-09T22-40-05Z
|
||||
newName: minio/minio
|
||||
configurations:
|
||||
- params.yaml
|
||||
|
|
@ -0,0 +1 @@
|
|||
minioPvcName=
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
varReference:
|
||||
- path: spec/template/spec/volumes/persistentVolumeClaim/claimName
|
||||
kind: Deployment
|
||||
- path: metadata/name
|
||||
kind: PersistentVolumeClaim
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: $(minioPvcName)
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 20Gi
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
approvers:
|
||||
- adrian555
|
||||
- animeshsingh
|
||||
- tomcli
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: mysql
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
volumes:
|
||||
- name: mysql-persistent-storage
|
||||
persistentVolumeClaim:
|
||||
claimName: $(mysqlPvcName)
|
||||
|
|
@ -0,0 +1,30 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
commonLabels:
|
||||
app: mysql
|
||||
app.kubernetes.io/component: mysql
|
||||
app.kubernetes.io/name: mysql
|
||||
resources:
|
||||
- ../generic
|
||||
generatorOptions:
|
||||
disableNameSuffixHash: true
|
||||
configMapGenerator:
|
||||
- name: pipeline-mysql-parameters
|
||||
envs:
|
||||
- params.env
|
||||
vars:
|
||||
- name: mysqlPvcName
|
||||
objref:
|
||||
kind: ConfigMap
|
||||
name: pipeline-mysql-parameters
|
||||
apiVersion: v1
|
||||
fieldref:
|
||||
fieldpath: data.mysqlPvcName
|
||||
images:
|
||||
- name: mysql
|
||||
newTag: '5.6'
|
||||
newName: mysql
|
||||
configurations:
|
||||
- params.yaml
|
||||
patchesStrategicMerge:
|
||||
- deployment-patch.yaml
|
||||
|
|
@ -0,0 +1 @@
|
|||
mysqlPvcName=
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
varReference:
|
||||
- path: spec/template/spec/volumes/persistentVolumeClaim/claimName
|
||||
kind: Deployment
|
||||
- path: metadata/name
|
||||
kind: PersistentVolumeClaim
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
approvers:
|
||||
- adrian555
|
||||
- animeshsingh
|
||||
- tomcli
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: istio-system
|
||||
resources:
|
||||
- ../../../../istio/add-anonymous-user-filter/base
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../admission-webhook/bootstrap/overlays/application
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: cert-manager
|
||||
resources:
|
||||
- ../../../../cert-manager/cert-manager-crds/base
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kube-system
|
||||
resources:
|
||||
- ../../../../cert-manager/cert-manager-kube-system-resources/base
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
commonLabels:
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
kind: Kustomization
|
||||
namespace: cert-manager
|
||||
resources:
|
||||
- ../../../../cert-manager/cert-manager/base
|
||||
- ../../../../cert-manager/cert-manager/overlays/application/application.yaml
|
||||
- ../../../../cert-manager/cert-manager/overlays/self-signed/cluster-issuer.yaml
|
||||
configurations:
|
||||
- ../../../../cert-manager/cert-manager/overlays/application/params.yaml
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: istio-system
|
||||
resources:
|
||||
- ../../../../istio/cluster-local-gateway/base
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: istio-system
|
||||
resources:
|
||||
- ../../../../istio/istio-crds/base
|
||||
- ../../../../istio/istio-install/base
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../istio/istio/base
|
||||
configMapGenerator:
|
||||
- name: istio-parameters
|
||||
behavior: merge
|
||||
envs:
|
||||
- params.env
|
||||
configurations:
|
||||
- params.yaml
|
||||
|
|
@ -0,0 +1 @@
|
|||
clusterRbacConfig=OFF
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
varReference:
|
||||
- path: spec/mode
|
||||
kind: ClusterRbacConfig
|
||||
|
|
@ -0,0 +1 @@
|
|||
Note: the approach to have the `base` in a sub-directory is to avoid the problem of current `namePrefix` incapability to skip adding to certain resources. In this case, they are `VirtualService` and `Application`. For these, we want the name to be `jupyter-web-app` instead of `jupyter-web-app-jupyter-web-app`.
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
# TODO(https://github.com/kubeflow/manifests/issues/774): This is a patch
|
||||
# that pulls out from core the parts that should be in pulled into stacks.
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: deployment
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: jupyter-web-app
|
||||
imagePullPolicy: $(policy)
|
||||
env:
|
||||
- name: ROK_SECRET_NAME
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: jupyter-web-app-parameters
|
||||
key: ROK_SECRET_NAME
|
||||
- name: UI
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: jupyter-web-app-parameters
|
||||
key: UI
|
||||
- name: USERID_HEADER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: kubeflow-config
|
||||
key: userid-header
|
||||
- name: USERID_PREFIX
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: kubeflow-config
|
||||
key: userid-prefix
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
commonLabels:
|
||||
app.kubernetes.io/component: jupyter-web-app
|
||||
app.kubernetes.io/name: jupyter-web-app
|
||||
app: jupyter-web-app
|
||||
kustomize.component: jupyter-web-app
|
||||
namePrefix: jupyter-web-app-
|
||||
namespace: kubeflow
|
||||
images:
|
||||
- name: gcr.io/kubeflow-images-public/jupyter-web-app
|
||||
newName: gcr.io/kubeflow-images-public/jupyter-web-app
|
||||
newTag: vmaster-gd9be4b9e
|
||||
resources:
|
||||
- ../../../../../jupyter/jupyter-web-app/base/cluster-role-binding.yaml
|
||||
- ../../../../../jupyter/jupyter-web-app/base/cluster-role.yaml
|
||||
- ../../../../../jupyter/jupyter-web-app/base/deployment.yaml
|
||||
- ../../../../../jupyter/jupyter-web-app/base/role-binding.yaml
|
||||
- ../../../../../jupyter/jupyter-web-app/base/role.yaml
|
||||
- ../../../../../jupyter/jupyter-web-app/base/service-account.yaml
|
||||
- ../../../../../jupyter/jupyter-web-app/base/service.yaml
|
||||
patchesStrategicMerge:
|
||||
- deployment_patch.yaml
|
||||
generatorOptions:
|
||||
disableNameSuffixHash: true
|
||||
configMapGenerator:
|
||||
- name: jupyter-web-app-config
|
||||
files:
|
||||
- ../../../../../jupyter/jupyter-web-app/base/configs/spawner_ui_config.yaml
|
||||
- name: parameters
|
||||
envs:
|
||||
- params.env
|
||||
vars:
|
||||
- fieldref:
|
||||
fieldPath: data.policy
|
||||
name: policy
|
||||
objref:
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
name: parameters
|
||||
- fieldref:
|
||||
fieldPath: data.prefix
|
||||
name: prefix
|
||||
objref:
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
name: parameters
|
||||
configurations:
|
||||
- params.yaml
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
UI=default
|
||||
ROK_SECRET_NAME=secret-rok-{username}
|
||||
policy=Always
|
||||
prefix=jupyter
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
varReference:
|
||||
- path: spec/template/spec/containers/imagePullPolicy
|
||||
kind: Deployment
|
||||
- path: metadata/annotations/getambassador.io\/config
|
||||
kind: Service
|
||||
- path: spec/http/route/destination/host
|
||||
kind: VirtualService
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- base
|
||||
- ../../../../jupyter/jupyter-web-app/overlays/istio
|
||||
- ../../../../jupyter/jupyter-web-app/overlays/application
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
commonLabels:
|
||||
app.kubernetes.io/component: metadata
|
||||
app.kubernetes.io/name: metadata
|
||||
kustomize.component: metadata
|
||||
resources:
|
||||
- ../../../../metadata/overlays/db
|
||||
- ../../../../metadata/overlays/application/application.yaml
|
||||
- ../../../../metadata/overlays/istio/virtual-service.yaml
|
||||
- ../../../../metadata/overlays/istio/virtual-service-metadata-grpc.yaml
|
||||
configurations:
|
||||
- ../../../../metadata/overlays/istio/params.yaml
|
||||
images:
|
||||
- name: mysql
|
||||
newTag: "5.6"
|
||||
newName: mysql
|
||||
|
|
@ -0,0 +1 @@
|
|||
Note: the approach to have the `base` in a sub-directory is to avoid the problem of current `namePrefix` incapability to skip adding to certain resources. In this case, they are `VirtualService` and `Application`. For these, we want the name to be `notebook-controller` instead of `notebook-controller-notebook-controller`.
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: deployment
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: manager
|
||||
env:
|
||||
- name: USE_ISTIO
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: notebook-controller-config
|
||||
key: USE_ISTIO
|
||||
- name: ISTIO_GATEWAY
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: notebook-controller-config
|
||||
key: ISTIO_GATEWAY
|
||||
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namePrefix: notebook-controller-
|
||||
namespace: kubeflow
|
||||
commonLabels:
|
||||
app: notebook-controller
|
||||
app.kubernetes.io/component: notebook-controller
|
||||
app.kubernetes.io/name: notebook-controller
|
||||
kustomize.component: notebook-controller
|
||||
generatorOptions:
|
||||
disableNameSuffixHash: true
|
||||
configMapGenerator:
|
||||
- literals:
|
||||
- USE_ISTIO=true
|
||||
- ISTIO_GATEWAY=kubeflow/kubeflow-gateway
|
||||
name: config
|
||||
images:
|
||||
- name: gcr.io/kubeflow-images-public/notebook-controller
|
||||
newName: gcr.io/kubeflow-images-public/notebook-controller
|
||||
newTag: vmaster-gf39279c0
|
||||
patchesStrategicMerge:
|
||||
- deployment_patch.yaml
|
||||
resources:
|
||||
- ../../../../../jupyter/notebook-controller/base/cluster-role-binding.yaml
|
||||
- ../../../../../jupyter/notebook-controller/base/cluster-role.yaml
|
||||
- ../../../../../jupyter/notebook-controller/base/crd.yaml
|
||||
- ../../../../../jupyter/notebook-controller/base/deployment.yaml
|
||||
- ../../../../../jupyter/notebook-controller/base/service-account.yaml
|
||||
- ../../../../../jupyter/notebook-controller/base/service.yaml
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
commonLabels:
|
||||
app.kubernetes.io/component: notebook-controller
|
||||
app.kubernetes.io/name: notebook-controller
|
||||
resources:
|
||||
- base
|
||||
- ../../../../jupyter/notebook-controller/overlays/application/application.yaml
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
commonLabels:
|
||||
app.kubernetes.io/component: pipelines-ui
|
||||
app.kubernetes.io/name: pipelines-ui
|
||||
resources:
|
||||
- ../../../../pipeline/pipelines-ui/overlays/istio
|
||||
- ../../../../pipeline/pipelines-ui/overlays/application/application.yaml
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: deployment
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- /manager
|
||||
- -userid-header
|
||||
- $(USERID_HEADER)
|
||||
- -userid-prefix
|
||||
- $(USERID_PREFIX)
|
||||
- -workload-identity
|
||||
- $(WORKLOAD_IDENTITY)
|
||||
args: []
|
||||
name: manager
|
||||
env:
|
||||
- name: USERID_HEADER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: kubeflow-config
|
||||
key: userid-header
|
||||
- name: USERID_PREFIX
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: kubeflow-config
|
||||
key: userid-prefix
|
||||
- name: WORKLOAD_IDENTITY
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: profiles-config
|
||||
key: gcp-sa
|
||||
- command:
|
||||
- /access-management
|
||||
- -cluster-admin
|
||||
- $(CLUSTER_ADMIN)
|
||||
- -userid-prefix
|
||||
- $(USERID_PREFIX)
|
||||
args: []
|
||||
name: kfam
|
||||
env:
|
||||
- name: USERID_HEADER
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: kubeflow-config
|
||||
key: userid-header
|
||||
- name: USERID_PREFIX
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: kubeflow-config
|
||||
key: userid-prefix
|
||||
- name: CLUSTER_ADMIN
|
||||
valueFrom:
|
||||
configMapKeyRef:
|
||||
name: profiles-config
|
||||
key: admin
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namePrefix: profiles-
|
||||
commonLabels:
|
||||
kustomize.component: profiles
|
||||
images:
|
||||
- name: gcr.io/kubeflow-images-public/kfam
|
||||
newName: gcr.io/kubeflow-images-public/kfam
|
||||
newTag: vmaster-gf3e09203
|
||||
- name: gcr.io/kubeflow-images-public/profile-controller
|
||||
newName: gcr.io/kubeflow-images-public/profile-controller
|
||||
newTag: vmaster-g34aa47c2
|
||||
resources:
|
||||
- ../../../../../profiles/base/cluster-role-binding.yaml
|
||||
- ../../../../../profiles/base/crd.yaml
|
||||
- ../../../../../profiles/base/deployment.yaml
|
||||
- ../../../../../profiles/base/service.yaml
|
||||
- ../../../../../profiles/base/service-account.yaml
|
||||
patchesStrategicMerge:
|
||||
- deployment_patch.yaml
|
||||
configMapGenerator:
|
||||
# We need the name to be unique without the suffix because the original name is what
|
||||
# gets used with patches
|
||||
- name: profiles-config
|
||||
literals:
|
||||
- admin=
|
||||
- gcp-sa=
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
commonLabels:
|
||||
app.kubernetes.io/component: profiles
|
||||
app.kubernetes.io/name: profiles
|
||||
resources:
|
||||
- base
|
||||
- ../../../../profiles/overlays/istio/virtual-service.yaml
|
||||
- ../../../../profiles/overlays/application/application.yaml
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../spark/spark-operator/overlays/application
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../common/spartakus/overlays/application
|
||||
configMapGenerator:
|
||||
- name: spartakus-config
|
||||
behavior: merge
|
||||
literals:
|
||||
- usageId=<randomly-generated-id>
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../../../tensorboard/overlays/istio
|
||||
configMapGenerator:
|
||||
- name: parameters
|
||||
behavior: merge
|
||||
literals:
|
||||
- namespace=kubeflow
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
clusterDomain=cluster.local
|
||||
userid-header=kubeflow-userid
|
||||
userid-prefix=
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
namespace: kubeflow
|
||||
resources:
|
||||
- ../../admission-webhook/webhook/v3
|
||||
- ../../common/centraldashboard/overlays/stacks
|
||||
- ../../kubeflow-roles/base
|
||||
- application/jupyter-web-app
|
||||
- application/notebook-controller
|
||||
- application/profiles
|
||||
- ../../argo/base_v3
|
||||
- ../../pipeline/api-service/overlays/application
|
||||
- ../../pipeline/minio/installs/ibm
|
||||
- ../../pipeline/mysql/installs/ibm
|
||||
- ../../pipeline/persistent-agent/overlays/application
|
||||
- ../../pipeline/pipelines-runner/overlays/application
|
||||
- application/pipelines-ui
|
||||
- ../../pipeline/pipelines-viewer/overlays/application
|
||||
- ../../pipeline/scheduledworkflow/overlays/application
|
||||
- ../../pipeline/pipeline-visualization-service/overlays/application
|
||||
- ../../pytorch-job/pytorch-job-crds/overlays/application
|
||||
- ../../pytorch-job/pytorch-operator/overlays/application
|
||||
- ../../tf-training/tf-job-crds/overlays/application
|
||||
- ../../tf-training/tf-job-operator/overlays/application
|
||||
- ../../katib/installs/katib-standalone-ibm
|
||||
- ../../seldon/seldon-core-operator/overlays/application
|
||||
configMapGenerator:
|
||||
- name: pipeline-mysql-parameters
|
||||
behavior: merge
|
||||
literals:
|
||||
- mysqlPvcName=mysql-pv-claim
|
||||
- name: pipeline-minio-parameters
|
||||
behavior: merge
|
||||
literals:
|
||||
- minioPvcName=minio-pv-claim
|
||||
- name: workflow-controller-parameters
|
||||
behavior: merge
|
||||
literals:
|
||||
- containerRuntimeExecutor=pns
|
||||
- name: profiles-config
|
||||
behavior: merge
|
||||
literals:
|
||||
- admin=example@kubeflow.org
|
||||
- name: kubeflow-config
|
||||
envs:
|
||||
- ./config/params.env
|
||||
vars:
|
||||
# We need to define vars at the top level otherwise we will get
|
||||
# conflicts.
|
||||
- fieldref:
|
||||
fieldPath: data.clusterDomain
|
||||
name: clusterDomain
|
||||
objref:
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
name: kubeflow-config
|
||||
- fieldref:
|
||||
fieldPath: metadata.namespace
|
||||
name: namespace
|
||||
objref:
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
name: kubeflow-config
|
||||
- fieldref:
|
||||
fieldpath: metadata.namespace
|
||||
name: katib-ui-namespace
|
||||
objref:
|
||||
kind: Service
|
||||
name: katib-ui
|
||||
apiVersion: v1
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package add_anonymous_user_filter
|
||||
|
||||
import (
|
||||
"github.com/kubeflow/manifests/tests"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestKustomize(t *testing.T) {
|
||||
testCase := &tests.KustomizeTestCase{
|
||||
Package: "../../../../../stacks/ibm/application/add-anonymous-user-filter",
|
||||
Expected: "test_data/expected",
|
||||
}
|
||||
|
||||
tests.RunTestCase(t, testCase)
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
apiVersion: networking.istio.io/v1alpha3
|
||||
kind: EnvoyFilter
|
||||
metadata:
|
||||
name: add-user-filter
|
||||
namespace: istio-system
|
||||
spec:
|
||||
filters:
|
||||
- filterConfig:
|
||||
inlineCode: |
|
||||
function envoy_on_request(request_handle)
|
||||
request_handle:headers():add("kubeflow-userid","anonymous@kubeflow.org")
|
||||
end
|
||||
filterName: envoy.lua
|
||||
filterType: HTTP
|
||||
insertPosition:
|
||||
index: FIRST
|
||||
listenerMatch:
|
||||
listenerType: GATEWAY
|
||||
workloadLabels:
|
||||
app: istio-ingressgateway
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package bootstrap
|
||||
|
||||
import (
|
||||
"github.com/kubeflow/manifests/tests"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestKustomize(t *testing.T) {
|
||||
testCase := &tests.KustomizeTestCase{
|
||||
Package: "../../../../../stacks/ibm/application/bootstrap",
|
||||
Expected: "test_data/expected",
|
||||
}
|
||||
|
||||
tests.RunTestCase(t, testCase)
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
apiVersion: app.k8s.io/v1beta1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: bootstrap
|
||||
app.kubernetes.io/name: bootstrap
|
||||
name: bootstrap
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
addOwnerRef: true
|
||||
componentKinds:
|
||||
- group: core
|
||||
kind: ConfigMap
|
||||
- group: apps
|
||||
kind: StatefulSet
|
||||
- group: core
|
||||
kind: ServiceAccount
|
||||
descriptor:
|
||||
description: Bootstraps the admission-webhook controller
|
||||
keywords:
|
||||
- admission-webhook
|
||||
- kubeflow
|
||||
links:
|
||||
- description: About
|
||||
url: https://github.com/kubeflow/kubeflow/tree/master/components/admission-webhook
|
||||
maintainers: []
|
||||
owners: []
|
||||
type: bootstrap
|
||||
version: v1beta1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: bootstrap
|
||||
app.kubernetes.io/instance: bootstrap-v0.7.0
|
||||
app.kubernetes.io/managed-by: kfctl
|
||||
app.kubernetes.io/name: bootstrap
|
||||
app.kubernetes.io/part-of: kubeflow
|
||||
app.kubernetes.io/version: v0.7.0
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
apiVersion: apps/v1
|
||||
kind: StatefulSet
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: bootstrap
|
||||
app.kubernetes.io/name: bootstrap
|
||||
kustomize.component: admission-webhook-bootstrap
|
||||
name: admission-webhook-bootstrap-stateful-set
|
||||
namespace: kubeflow
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: bootstrap
|
||||
app.kubernetes.io/name: bootstrap
|
||||
kustomize.component: admission-webhook-bootstrap
|
||||
serviceName: service
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
sidecar.istio.io/inject: "false"
|
||||
labels:
|
||||
app.kubernetes.io/component: bootstrap
|
||||
app.kubernetes.io/name: bootstrap
|
||||
kustomize.component: admission-webhook-bootstrap
|
||||
spec:
|
||||
containers:
|
||||
- command:
|
||||
- sh
|
||||
- /var/webhook-config/create_ca.sh
|
||||
image: gcr.io/kubeflow-images-public/ingress-setup:latest
|
||||
name: bootstrap
|
||||
volumeMounts:
|
||||
- mountPath: /var/webhook-config/
|
||||
name: admission-webhook-config
|
||||
restartPolicy: Always
|
||||
serviceAccountName: admission-webhook-bootstrap-service-account
|
||||
volumes:
|
||||
- configMap:
|
||||
name: admission-webhook-bootstrap-config-map
|
||||
name: admission-webhook-config
|
||||
volumeClaimTemplates: []
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: bootstrap
|
||||
app.kubernetes.io/name: bootstrap
|
||||
kustomize.component: admission-webhook-bootstrap
|
||||
name: admission-webhook-bootstrap-cluster-role
|
||||
rules:
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- mutatingwebhookconfigurations
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- '*'
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
verbs:
|
||||
- list
|
||||
- delete
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: bootstrap
|
||||
app.kubernetes.io/name: bootstrap
|
||||
kustomize.component: admission-webhook-bootstrap
|
||||
name: admission-webhook-bootstrap-cluster-role-binding
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: admission-webhook-bootstrap-cluster-role
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: admission-webhook-bootstrap-service-account
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,139 @@
|
|||
apiVersion: v1
|
||||
data:
|
||||
create_ca.sh: |
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
Generate certificate suitable for use with an sidecar-injector webhook service.
|
||||
This script uses k8s' CertificateSigningRequest API to a generate a
|
||||
certificate signed by k8s CA suitable for use with sidecar-injector webhook
|
||||
services. This requires permissions to create and approve CSR. See
|
||||
https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster for
|
||||
detailed explantion and additional instructions.
|
||||
The server key/cert k8s CA cert are stored in a k8s secret.
|
||||
usage: ${0} [OPTIONS]
|
||||
The following flags are required.
|
||||
--service Service name of webhook.
|
||||
--namespace Namespace where webhook service and secret reside.
|
||||
--secret Secret name for CA certificate and server certificate/key pair.
|
||||
EOF
|
||||
exit 1
|
||||
}
|
||||
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case ${1} in
|
||||
--service)
|
||||
service="$2"
|
||||
shift
|
||||
;;
|
||||
--secret)
|
||||
secret="$2"
|
||||
shift
|
||||
;;
|
||||
--namespace)
|
||||
namespace="$2"
|
||||
shift
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -z ${service} ] && service=admission-webhook-service
|
||||
[ -z ${secret} ] && secret=webhook-certs
|
||||
[ -z ${namespace} ] && namespace=kubeflow
|
||||
[ -z ${namespace} ] && namespace=default
|
||||
|
||||
webhookDeploymentName=admission-webhook-deployment
|
||||
mutatingWebhookConfigName=admission-webhook-mutating-webhook-configuration
|
||||
echo ${service}
|
||||
echo ${namespace}
|
||||
echo ${secret}
|
||||
echo ${webhookDeploymentName}
|
||||
echo ${mutatingWebhookconfigName}
|
||||
if [ ! -x "$(command -v openssl)" ]; then
|
||||
echo "openssl not found"
|
||||
exit 1
|
||||
fi
|
||||
csrName=${service}.${namespace}
|
||||
tmpdir=$(mktemp -d)
|
||||
echo "creating certs in tmpdir ${tmpdir} "
|
||||
|
||||
# x509 outputs a self signed certificate instead of certificate request, later used as self signed root CA
|
||||
openssl req -x509 -newkey rsa:2048 -keyout ${tmpdir}/self_ca.key -out ${tmpdir}/self_ca.crt -days 365 -nodes -subj /C=/ST=/L=/O=/OU=/CN=test-certificate-authority
|
||||
|
||||
cat <<EOF >> ${tmpdir}/csr.conf
|
||||
[req]
|
||||
req_extensions = v3_req
|
||||
distinguished_name = req_distinguished_name
|
||||
[req_distinguished_name]
|
||||
[ v3_req ]
|
||||
basicConstraints = CA:FALSE
|
||||
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
|
||||
extendedKeyUsage = serverAuth
|
||||
subjectAltName = @alt_names
|
||||
[alt_names]
|
||||
DNS.1 = ${service}
|
||||
DNS.2 = ${service}.${namespace}
|
||||
DNS.3 = ${service}.${namespace}.svc
|
||||
EOF
|
||||
|
||||
openssl genrsa -out ${tmpdir}/server-key.pem 2048
|
||||
openssl req -new -key ${tmpdir}/server-key.pem -subj "/CN=${service}.${namespace}.svc" -out ${tmpdir}/server.csr -config ${tmpdir}/csr.conf
|
||||
|
||||
# Self sign
|
||||
openssl x509 -req -days 365 -in ${tmpdir}/server.csr -CA ${tmpdir}/self_ca.crt -CAkey ${tmpdir}/self_ca.key -CAcreateserial -out ${tmpdir}/server-cert.pem
|
||||
|
||||
# create the secret with CA cert and server cert/key
|
||||
kubectl create secret generic ${secret} \
|
||||
--from-file=key.pem=${tmpdir}/server-key.pem \
|
||||
--from-file=cert.pem=${tmpdir}/server-cert.pem \
|
||||
--dry-run -o yaml |
|
||||
kubectl -n ${namespace} apply -f -
|
||||
|
||||
# Webhook pod needs to be restarted so that the service reload the secret
|
||||
# http://github.com/kueflow/kubeflow/issues/3227
|
||||
webhookPod=$(kubectl get pods -n ${namespace} |grep ${webhookDeploymentName} |awk '{print $1;}')
|
||||
# ignore error if webhook pod does not exist
|
||||
kubectl delete pod ${webhookPod} 2>/dev/null || true
|
||||
echo "webhook ${webhookPod} is restarted to utilize the new secret"
|
||||
|
||||
cat ${tmpdir}/self_ca.crt
|
||||
|
||||
# -a means base64 encode
|
||||
caBundle=$(cat ${tmpdir}/self_ca.crt | openssl enc -a -A)
|
||||
echo ${caBundle}
|
||||
|
||||
patchString='[{"op": "replace", "path": "/webhooks/0/clientConfig/caBundle", "value":"{{CA_BUNDLE}}"}]'
|
||||
patchString=$(echo ${patchString} | sed "s|{{CA_BUNDLE}}|${caBundle}|g")
|
||||
echo ${patchString}
|
||||
|
||||
checkWebhookConfig() {
|
||||
currentBundle=$(kubectl get mutatingwebhookconfigurations -n ${namespace} ${mutatingWebhookConfigName} -o jsonpath='{.webhooks[0].clientConfig.caBundle}')
|
||||
[[ "$currentBundle" == "$caBundle" ]]
|
||||
}
|
||||
|
||||
while true; do
|
||||
if ! checkWebhookConfig; then
|
||||
echo "patching ca bundle for webhook configuration..."
|
||||
kubectl patch mutatingwebhookconfiguration ${mutatingWebhookConfigName} \
|
||||
--type='json' -p="${patchString}"
|
||||
fi
|
||||
sleep 10
|
||||
done
|
||||
namespace: kubeflow
|
||||
webhookNamePrefix: admission-webhook-
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
annotations: {}
|
||||
labels:
|
||||
app.kubernetes.io/component: bootstrap
|
||||
app.kubernetes.io/name: bootstrap
|
||||
kustomize.component: admission-webhook-bootstrap
|
||||
name: admission-webhook-bootstrap-config-map
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: bootstrap
|
||||
app.kubernetes.io/name: bootstrap
|
||||
kustomize.component: admission-webhook-bootstrap
|
||||
name: admission-webhook-bootstrap-service-account
|
||||
namespace: kubeflow
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package cert_manager_crds
|
||||
|
||||
import (
|
||||
"github.com/kubeflow/manifests/tests"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestKustomize(t *testing.T) {
|
||||
testCase := &tests.KustomizeTestCase{
|
||||
Package: "../../../../../stacks/ibm/application/cert-manager-crds",
|
||||
Expected: "test_data/expected",
|
||||
}
|
||||
|
||||
tests.RunTestCase(t, testCase)
|
||||
}
|
||||
|
|
@ -0,0 +1,181 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: certificaterequests.cert-manager.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.conditions[?(@.type=="Ready")].status
|
||||
name: Ready
|
||||
type: string
|
||||
- JSONPath: .spec.issuerRef.name
|
||||
name: Issuer
|
||||
priority: 1
|
||||
type: string
|
||||
- JSONPath: .status.conditions[?(@.type=="Ready")].message
|
||||
name: Status
|
||||
priority: 1
|
||||
type: string
|
||||
- JSONPath: .metadata.creationTimestamp
|
||||
description: CreationTimestamp is a timestamp representing the server time when
|
||||
this object was created. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. Clients may not set this value. It is represented
|
||||
in RFC3339 form and is in UTC.
|
||||
name: Age
|
||||
type: date
|
||||
group: cert-manager.io
|
||||
names:
|
||||
kind: CertificateRequest
|
||||
listKind: CertificateRequestList
|
||||
plural: certificaterequests
|
||||
shortNames:
|
||||
- cr
|
||||
- crs
|
||||
singular: certificaterequest
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
description: CertificateRequest is a type to represent a Certificate Signing
|
||||
Request
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: CertificateRequestSpec defines the desired state of CertificateRequest
|
||||
properties:
|
||||
csr:
|
||||
description: Byte slice containing the PEM encoded CertificateSigningRequest
|
||||
format: byte
|
||||
type: string
|
||||
duration:
|
||||
description: Requested certificate default Duration
|
||||
type: string
|
||||
isCA:
|
||||
description: IsCA will mark the resulting certificate as valid for signing.
|
||||
This implies that the 'cert sign' usage is set
|
||||
type: boolean
|
||||
issuerRef:
|
||||
description: IssuerRef is a reference to the issuer for this CertificateRequest. If
|
||||
the 'kind' field is not set, or set to 'Issuer', an Issuer resource
|
||||
with the given name in the same namespace as the CertificateRequest
|
||||
will be used. If the 'kind' field is set to 'ClusterIssuer', a ClusterIssuer
|
||||
with the provided name will be used. The 'name' field in this stanza
|
||||
is required at all times. The group field refers to the API group
|
||||
of the issuer which defaults to 'cert-manager.io' if empty.
|
||||
properties:
|
||||
group:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
usages:
|
||||
description: Usages is the set of x509 actions that are enabled for
|
||||
a given key. Defaults are ('digital signature', 'key encipherment')
|
||||
if empty
|
||||
items:
|
||||
description: 'KeyUsage specifies valid usage contexts for keys. See:
|
||||
https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12'
|
||||
enum:
|
||||
- signing
|
||||
- digital signature
|
||||
- content commitment
|
||||
- key encipherment
|
||||
- key agreement
|
||||
- data encipherment
|
||||
- cert sign
|
||||
- crl sign
|
||||
- encipher only
|
||||
- decipher only
|
||||
- any
|
||||
- server auth
|
||||
- client auth
|
||||
- code signing
|
||||
- email protection
|
||||
- s/mime
|
||||
- ipsec end system
|
||||
- ipsec tunnel
|
||||
- ipsec user
|
||||
- timestamping
|
||||
- ocsp signing
|
||||
- microsoft sgc
|
||||
- netscape sgc
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- issuerRef
|
||||
type: object
|
||||
status:
|
||||
description: CertificateStatus defines the observed state of CertificateRequest
|
||||
and resulting signed certificate.
|
||||
properties:
|
||||
ca:
|
||||
description: Byte slice containing the PEM encoded certificate authority
|
||||
of the signed certificate.
|
||||
format: byte
|
||||
type: string
|
||||
certificate:
|
||||
description: Byte slice containing a PEM encoded signed certificate
|
||||
resulting from the given certificate signing request.
|
||||
format: byte
|
||||
type: string
|
||||
conditions:
|
||||
items:
|
||||
description: CertificateRequestCondition contains condition information
|
||||
for a CertificateRequest.
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: LastTransitionTime is the timestamp corresponding
|
||||
to the last status change of this condition.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Message is a human readable description of the details
|
||||
of the last transition, complementing reason.
|
||||
type: string
|
||||
reason:
|
||||
description: Reason is a brief machine readable explanation for
|
||||
the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of ('True', 'False',
|
||||
'Unknown').
|
||||
enum:
|
||||
- "True"
|
||||
- "False"
|
||||
- Unknown
|
||||
type: string
|
||||
type:
|
||||
description: Type of the condition, currently ('Ready').
|
||||
type: string
|
||||
required:
|
||||
- status
|
||||
- type
|
||||
type: object
|
||||
type: array
|
||||
failureTime:
|
||||
description: FailureTime stores the time that this CertificateRequest
|
||||
failed. This is used to influence garbage collection and back-off.
|
||||
format: date-time
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
version: v1alpha2
|
||||
versions:
|
||||
- name: v1alpha2
|
||||
served: true
|
||||
storage: true
|
||||
|
|
@ -0,0 +1,235 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: certificates.cert-manager.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.conditions[?(@.type=="Ready")].status
|
||||
name: Ready
|
||||
type: string
|
||||
- JSONPath: .spec.secretName
|
||||
name: Secret
|
||||
type: string
|
||||
- JSONPath: .spec.issuerRef.name
|
||||
name: Issuer
|
||||
priority: 1
|
||||
type: string
|
||||
- JSONPath: .status.conditions[?(@.type=="Ready")].message
|
||||
name: Status
|
||||
priority: 1
|
||||
type: string
|
||||
- JSONPath: .metadata.creationTimestamp
|
||||
description: CreationTimestamp is a timestamp representing the server time when
|
||||
this object was created. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. Clients may not set this value. It is represented
|
||||
in RFC3339 form and is in UTC.
|
||||
name: Age
|
||||
type: date
|
||||
group: cert-manager.io
|
||||
names:
|
||||
kind: Certificate
|
||||
listKind: CertificateList
|
||||
plural: certificates
|
||||
shortNames:
|
||||
- cert
|
||||
- certs
|
||||
singular: certificate
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
description: Certificate is a type to represent a Certificate from ACME
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
description: CertificateSpec defines the desired state of Certificate. A
|
||||
valid Certificate requires at least one of a CommonName, DNSName, or URISAN
|
||||
to be valid.
|
||||
properties:
|
||||
commonName:
|
||||
description: CommonName is a common name to be used on the Certificate.
|
||||
The CommonName should have a length of 64 characters or fewer to avoid
|
||||
generating invalid CSRs.
|
||||
type: string
|
||||
dnsNames:
|
||||
description: DNSNames is a list of subject alt names to be used on the
|
||||
Certificate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
duration:
|
||||
description: Certificate default Duration
|
||||
type: string
|
||||
ipAddresses:
|
||||
description: IPAddresses is a list of IP addresses to be used on the
|
||||
Certificate
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
isCA:
|
||||
description: IsCA will mark this Certificate as valid for signing. This
|
||||
implies that the 'cert sign' usage is set
|
||||
type: boolean
|
||||
issuerRef:
|
||||
description: IssuerRef is a reference to the issuer for this certificate.
|
||||
If the 'kind' field is not set, or set to 'Issuer', an Issuer resource
|
||||
with the given name in the same namespace as the Certificate will
|
||||
be used. If the 'kind' field is set to 'ClusterIssuer', a ClusterIssuer
|
||||
with the provided name will be used. The 'name' field in this stanza
|
||||
is required at all times.
|
||||
properties:
|
||||
group:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
keyAlgorithm:
|
||||
description: KeyAlgorithm is the private key algorithm of the corresponding
|
||||
private key for this certificate. If provided, allowed values are
|
||||
either "rsa" or "ecdsa" If KeyAlgorithm is specified and KeySize is
|
||||
not provided, key size of 256 will be used for "ecdsa" key algorithm
|
||||
and key size of 2048 will be used for "rsa" key algorithm.
|
||||
enum:
|
||||
- rsa
|
||||
- ecdsa
|
||||
type: string
|
||||
keyEncoding:
|
||||
description: KeyEncoding is the private key cryptography standards (PKCS)
|
||||
for this certificate's private key to be encoded in. If provided,
|
||||
allowed values are "pkcs1" and "pkcs8" standing for PKCS#1 and PKCS#8,
|
||||
respectively. If KeyEncoding is not specified, then PKCS#1 will be
|
||||
used by default.
|
||||
enum:
|
||||
- pkcs1
|
||||
- pkcs8
|
||||
type: string
|
||||
keySize:
|
||||
description: KeySize is the key bit size of the corresponding private
|
||||
key for this certificate. If provided, value must be between 2048
|
||||
and 8192 inclusive when KeyAlgorithm is empty or is set to "rsa",
|
||||
and value must be one of (256, 384, 521) when KeyAlgorithm is set
|
||||
to "ecdsa".
|
||||
type: integer
|
||||
organization:
|
||||
description: Organization is the organization to be used on the Certificate
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
renewBefore:
|
||||
description: Certificate renew before expiration duration
|
||||
type: string
|
||||
secretName:
|
||||
description: SecretName is the name of the secret resource to store
|
||||
this secret in
|
||||
type: string
|
||||
uriSANs:
|
||||
description: URISANs is a list of URI Subject Alternative Names to be
|
||||
set on this Certificate.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
usages:
|
||||
description: Usages is the set of x509 actions that are enabled for
|
||||
a given key. Defaults are ('digital signature', 'key encipherment')
|
||||
if empty
|
||||
items:
|
||||
description: 'KeyUsage specifies valid usage contexts for keys. See:
|
||||
https://tools.ietf.org/html/rfc5280#section-4.2.1.3 https://tools.ietf.org/html/rfc5280#section-4.2.1.12'
|
||||
enum:
|
||||
- signing
|
||||
- digital signature
|
||||
- content commitment
|
||||
- key encipherment
|
||||
- key agreement
|
||||
- data encipherment
|
||||
- cert sign
|
||||
- crl sign
|
||||
- encipher only
|
||||
- decipher only
|
||||
- any
|
||||
- server auth
|
||||
- client auth
|
||||
- code signing
|
||||
- email protection
|
||||
- s/mime
|
||||
- ipsec end system
|
||||
- ipsec tunnel
|
||||
- ipsec user
|
||||
- timestamping
|
||||
- ocsp signing
|
||||
- microsoft sgc
|
||||
- netscape sgc
|
||||
type: string
|
||||
type: array
|
||||
required:
|
||||
- issuerRef
|
||||
- secretName
|
||||
type: object
|
||||
status:
|
||||
description: CertificateStatus defines the observed state of Certificate
|
||||
properties:
|
||||
conditions:
|
||||
items:
|
||||
description: CertificateCondition contains condition information for
|
||||
an Certificate.
|
||||
properties:
|
||||
lastTransitionTime:
|
||||
description: LastTransitionTime is the timestamp corresponding
|
||||
to the last status change of this condition.
|
||||
format: date-time
|
||||
type: string
|
||||
message:
|
||||
description: Message is a human readable description of the details
|
||||
of the last transition, complementing reason.
|
||||
type: string
|
||||
reason:
|
||||
description: Reason is a brief machine readable explanation for
|
||||
the condition's last transition.
|
||||
type: string
|
||||
status:
|
||||
description: Status of the condition, one of ('True', 'False',
|
||||
'Unknown').
|
||||
enum:
|
||||
- "True"
|
||||
- "False"
|
||||
- Unknown
|
||||
type: string
|
||||
type:
|
||||
description: Type of the condition, currently ('Ready').
|
||||
type: string
|
||||
required:
|
||||
- status
|
||||
- type
|
||||
type: object
|
||||
type: array
|
||||
lastFailureTime:
|
||||
format: date-time
|
||||
type: string
|
||||
notAfter:
|
||||
description: The expiration time of the certificate stored in the secret
|
||||
named by this resource in spec.secretName.
|
||||
format: date-time
|
||||
type: string
|
||||
type: object
|
||||
type: object
|
||||
version: v1alpha2
|
||||
versions:
|
||||
- name: v1alpha2
|
||||
served: true
|
||||
storage: true
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,200 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: orders.acme.cert-manager.io
|
||||
spec:
|
||||
additionalPrinterColumns:
|
||||
- JSONPath: .status.state
|
||||
name: State
|
||||
type: string
|
||||
- JSONPath: .spec.issuerRef.name
|
||||
name: Issuer
|
||||
priority: 1
|
||||
type: string
|
||||
- JSONPath: .status.reason
|
||||
name: Reason
|
||||
priority: 1
|
||||
type: string
|
||||
- JSONPath: .metadata.creationTimestamp
|
||||
description: CreationTimestamp is a timestamp representing the server time when
|
||||
this object was created. It is not guaranteed to be set in happens-before order
|
||||
across separate operations. Clients may not set this value. It is represented
|
||||
in RFC3339 form and is in UTC.
|
||||
name: Age
|
||||
type: date
|
||||
group: acme.cert-manager.io
|
||||
names:
|
||||
kind: Order
|
||||
listKind: OrderList
|
||||
plural: orders
|
||||
singular: order
|
||||
scope: Namespaced
|
||||
subresources:
|
||||
status: {}
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
description: Order is a type to represent an Order with an ACME server
|
||||
properties:
|
||||
apiVersion:
|
||||
description: 'APIVersion defines the versioned schema of this representation
|
||||
of an object. Servers should convert recognized schemas to the latest
|
||||
internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
|
||||
type: string
|
||||
kind:
|
||||
description: 'Kind is a string value representing the REST resource this
|
||||
object represents. Servers may infer this from the endpoint the client
|
||||
submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
commonName:
|
||||
description: CommonName is the common name as specified on the DER encoded
|
||||
CSR. If CommonName is not specified, the first DNSName specified will
|
||||
be used as the CommonName. At least one of CommonName or a DNSNames
|
||||
must be set. This field must match the corresponding field on the
|
||||
DER encoded CSR.
|
||||
type: string
|
||||
csr:
|
||||
description: Certificate signing request bytes in DER encoding. This
|
||||
will be used when finalizing the order. This field must be set on
|
||||
the order.
|
||||
format: byte
|
||||
type: string
|
||||
dnsNames:
|
||||
description: DNSNames is a list of DNS names that should be included
|
||||
as part of the Order validation process. If CommonName is not specified,
|
||||
the first DNSName specified will be used as the CommonName. At least
|
||||
one of CommonName or a DNSNames must be set. This field must match
|
||||
the corresponding field on the DER encoded CSR.
|
||||
items:
|
||||
type: string
|
||||
type: array
|
||||
issuerRef:
|
||||
description: IssuerRef references a properly configured ACME-type Issuer
|
||||
which should be used to create this Order. If the Issuer does not
|
||||
exist, processing will be retried. If the Issuer is not an 'ACME'
|
||||
Issuer, an error will be returned and the Order will be marked as
|
||||
failed.
|
||||
properties:
|
||||
group:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
required:
|
||||
- name
|
||||
type: object
|
||||
required:
|
||||
- csr
|
||||
- issuerRef
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
authorizations:
|
||||
description: Authorizations contains data returned from the ACME server
|
||||
on what authoriations must be completed in order to validate the DNS
|
||||
names specified on the Order.
|
||||
items:
|
||||
description: ACMEAuthorization contains data returned from the ACME
|
||||
server on an authorization that must be completed in order validate
|
||||
a DNS name on an ACME Order resource.
|
||||
properties:
|
||||
challenges:
|
||||
description: Challenges specifies the challenge types offered
|
||||
by the ACME server. One of these challenge types will be selected
|
||||
when validating the DNS name and an appropriate Challenge resource
|
||||
will be created to perform the ACME challenge process.
|
||||
items:
|
||||
description: Challenge specifies a challenge offered by the
|
||||
ACME server for an Order. An appropriate Challenge resource
|
||||
can be created to perform the ACME challenge process.
|
||||
properties:
|
||||
token:
|
||||
description: Token is the token that must be presented for
|
||||
this challenge. This is used to compute the 'key' that
|
||||
must also be presented.
|
||||
type: string
|
||||
type:
|
||||
description: Type is the type of challenge being offered,
|
||||
e.g. http-01, dns-01
|
||||
type: string
|
||||
url:
|
||||
description: URL is the URL of this challenge. It can be
|
||||
used to retrieve additional metadata about the Challenge
|
||||
from the ACME server.
|
||||
type: string
|
||||
required:
|
||||
- token
|
||||
- type
|
||||
- url
|
||||
type: object
|
||||
type: array
|
||||
identifier:
|
||||
description: Identifier is the DNS name to be validated as part
|
||||
of this authorization
|
||||
type: string
|
||||
url:
|
||||
description: URL is the URL of the Authorization that must be
|
||||
completed
|
||||
type: string
|
||||
wildcard:
|
||||
description: Wildcard will be true if this authorization is for
|
||||
a wildcard DNS name. If this is true, the identifier will be
|
||||
the *non-wildcard* version of the DNS name. For example, if
|
||||
'*.example.com' is the DNS name being validated, this field
|
||||
will be 'true' and the 'identifier' field will be 'example.com'.
|
||||
type: boolean
|
||||
required:
|
||||
- url
|
||||
type: object
|
||||
type: array
|
||||
certificate:
|
||||
description: Certificate is a copy of the PEM encoded certificate for
|
||||
this Order. This field will be populated after the order has been
|
||||
successfully finalized with the ACME server, and the order has transitioned
|
||||
to the 'valid' state.
|
||||
format: byte
|
||||
type: string
|
||||
failureTime:
|
||||
description: FailureTime stores the time that this order failed. This
|
||||
is used to influence garbage collection and back-off.
|
||||
format: date-time
|
||||
type: string
|
||||
finalizeURL:
|
||||
description: FinalizeURL of the Order. This is used to obtain certificates
|
||||
for this order once it has been completed.
|
||||
type: string
|
||||
reason:
|
||||
description: Reason optionally provides more information about a why
|
||||
the order is in the current state.
|
||||
type: string
|
||||
state:
|
||||
description: State contains the current state of this Order resource.
|
||||
States 'success' and 'expired' are 'final'
|
||||
enum:
|
||||
- valid
|
||||
- ready
|
||||
- pending
|
||||
- processing
|
||||
- invalid
|
||||
- expired
|
||||
- errored
|
||||
type: string
|
||||
url:
|
||||
description: URL of the Order. This will initially be empty when the
|
||||
resource is first created. The Order controller will populate this
|
||||
field when the Order is first processed. This field will be immutable
|
||||
after it is initially set.
|
||||
type: string
|
||||
type: object
|
||||
required:
|
||||
- metadata
|
||||
type: object
|
||||
version: v1alpha2
|
||||
versions:
|
||||
- name: v1alpha2
|
||||
served: true
|
||||
storage: true
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package cert_manager_kube_system_resources
|
||||
|
||||
import (
|
||||
"github.com/kubeflow/manifests/tests"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestKustomize(t *testing.T) {
|
||||
testCase := &tests.KustomizeTestCase{
|
||||
Package: "../../../../../stacks/ibm/application/cert-manager-kube-system-resources",
|
||||
Expected: "test_data/expected",
|
||||
}
|
||||
|
||||
tests.RunTestCase(t, testCase)
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: Role
|
||||
metadata:
|
||||
labels:
|
||||
app: cainjector
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-cainjector:leaderelection
|
||||
namespace: kube-system
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: Role
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager:leaderelection
|
||||
namespace: kube-system
|
||||
rules:
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- configmaps
|
||||
verbs:
|
||||
- get
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: cainjector
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-cainjector:leaderelection
|
||||
namespace: kube-system
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: cert-manager-cainjector:leaderelection
|
||||
subjects:
|
||||
- apiGroup: ""
|
||||
kind: ServiceAccount
|
||||
name: cert-manager-cainjector
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: webhook
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-webhook:webhook-authentication-reader
|
||||
namespace: kube-system
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: extension-apiserver-authentication-reader
|
||||
subjects:
|
||||
- apiGroup: ""
|
||||
kind: ServiceAccount
|
||||
name: cert-manager-webhook
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: RoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager:leaderelection
|
||||
namespace: kube-system
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: Role
|
||||
name: cert-manager:leaderelection
|
||||
subjects:
|
||||
- apiGroup: ""
|
||||
kind: ServiceAccount
|
||||
name: cert-manager
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
apiVersion: v1
|
||||
data:
|
||||
certManagerNamespace: cert-manager
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-kube-params-parameters
|
||||
namespace: kube-system
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package cert_manager
|
||||
|
||||
import (
|
||||
"github.com/kubeflow/manifests/tests"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestKustomize(t *testing.T) {
|
||||
testCase := &tests.KustomizeTestCase{
|
||||
Package: "../../../../../stacks/ibm/application/cert-manager",
|
||||
Expected: "test_data/expected",
|
||||
}
|
||||
|
||||
tests.RunTestCase(t, testCase)
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: MutatingWebhookConfiguration
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-apiserver-ca: "true"
|
||||
labels:
|
||||
app: webhook
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-webhook
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: ""
|
||||
service:
|
||||
name: kubernetes
|
||||
namespace: default
|
||||
path: /apis/webhook.cert-manager.io/v1beta1/mutations
|
||||
failurePolicy: Fail
|
||||
name: webhook.cert-manager.io
|
||||
rules:
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
apiVersions:
|
||||
- v1alpha2
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- certificates
|
||||
- issuers
|
||||
- clusterissuers
|
||||
- orders
|
||||
- challenges
|
||||
- certificaterequests
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
apiVersion: admissionregistration.k8s.io/v1beta1
|
||||
kind: ValidatingWebhookConfiguration
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-apiserver-ca: "true"
|
||||
labels:
|
||||
app: webhook
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-webhook
|
||||
webhooks:
|
||||
- clientConfig:
|
||||
caBundle: ""
|
||||
service:
|
||||
name: kubernetes
|
||||
namespace: default
|
||||
path: /apis/webhook.cert-manager.io/v1beta1/validations
|
||||
failurePolicy: Fail
|
||||
name: webhook.certmanager.k8s.io
|
||||
rules:
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
apiVersions:
|
||||
- v1alpha2
|
||||
operations:
|
||||
- CREATE
|
||||
- UPDATE
|
||||
resources:
|
||||
- certificates
|
||||
- issuers
|
||||
- clusterissuers
|
||||
- certificaterequests
|
||||
sideEffects: None
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: apiregistration.k8s.io/v1beta1
|
||||
kind: APIService
|
||||
metadata:
|
||||
annotations:
|
||||
cert-manager.io/inject-ca-from-secret: cert-manager/cert-manager-webhook-tls
|
||||
labels:
|
||||
app: webhook
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: v1beta1.webhook.cert-manager.io
|
||||
spec:
|
||||
group: webhook.cert-manager.io
|
||||
groupPriorityMinimum: 1000
|
||||
service:
|
||||
name: cert-manager-webhook
|
||||
namespace: cert-manager
|
||||
version: v1beta1
|
||||
versionPriority: 15
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
apiVersion: app.k8s.io/v1beta1
|
||||
kind: Application
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager
|
||||
namespace: cert-manager
|
||||
spec:
|
||||
componentKinds:
|
||||
- group: rbac
|
||||
kind: ClusterRole
|
||||
- group: rbac
|
||||
kind: ClusterRoleBinding
|
||||
- group: core
|
||||
kind: Namespace
|
||||
- group: core
|
||||
kind: Service
|
||||
- group: apps
|
||||
kind: Deployment
|
||||
- group: core
|
||||
kind: ServiceAccount
|
||||
descriptor:
|
||||
description: Automatically provision and manage TLS certificates in Kubernetes
|
||||
https://jetstack.io.
|
||||
keywords:
|
||||
- cert-manager
|
||||
links:
|
||||
- description: About
|
||||
url: https://github.com/jetstack/cert-manager
|
||||
type: ""
|
||||
version: v0.10.0
|
||||
selector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/instance: cert-manager
|
||||
app.kubernetes.io/managed-by: kfctl
|
||||
app.kubernetes.io/name: cert-manager
|
||||
app.kubernetes.io/part-of: kubeflow
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: cainjector
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-cainjector
|
||||
namespace: cert-manager
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: cainjector
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
template:
|
||||
metadata:
|
||||
annotations: null
|
||||
labels:
|
||||
app: cainjector
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --v=2
|
||||
- --leader-election-namespace=kube-system
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
image: quay.io/jetstack/cert-manager-cainjector:v0.11.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: cainjector
|
||||
resources: {}
|
||||
serviceAccountName: cert-manager-cainjector
|
||||
|
|
@ -0,0 +1,50 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: webhook
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-webhook
|
||||
namespace: cert-manager
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: webhook
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
template:
|
||||
metadata:
|
||||
annotations: null
|
||||
labels:
|
||||
app: webhook
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --v=2
|
||||
- --secure-port=6443
|
||||
- --tls-cert-file=/certs/tls.crt
|
||||
- --tls-private-key-file=/certs/tls.key
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
image: quay.io/jetstack/cert-manager-webhook:v0.11.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: cert-manager
|
||||
resources: {}
|
||||
volumeMounts:
|
||||
- mountPath: /certs
|
||||
name: certs
|
||||
serviceAccountName: cert-manager-webhook
|
||||
volumes:
|
||||
- name: certs
|
||||
secret:
|
||||
secretName: cert-manager-webhook-tls
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager
|
||||
namespace: cert-manager
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
prometheus.io/path: /metrics
|
||||
prometheus.io/port: "9402"
|
||||
prometheus.io/scrape: "true"
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --v=2
|
||||
- --cluster-resource-namespace=$(POD_NAMESPACE)
|
||||
- --leader-election-namespace=kube-system
|
||||
- --webhook-namespace=$(POD_NAMESPACE)
|
||||
- --webhook-ca-secret=cert-manager-webhook-ca
|
||||
- --webhook-serving-secret=cert-manager-webhook-tls
|
||||
- --webhook-dns-names=cert-manager-webhook,cert-manager-webhook.cert-manager,cert-manager-webhook.cert-manager.svc
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
image: quay.io/jetstack/cert-manager-controller:v0.11.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
name: cert-manager
|
||||
ports:
|
||||
- containerPort: 9402
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 32Mi
|
||||
serviceAccountName: cert-manager
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
apiVersion: cert-manager.io/v1alpha2
|
||||
kind: ClusterIssuer
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: kubeflow-self-signing-issuer
|
||||
namespace: cert-manager
|
||||
spec:
|
||||
selfSigned: {}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
||||
rbac.authorization.k8s.io/aggregate-to-edit: "true"
|
||||
name: cert-manager-edit
|
||||
rules:
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- certificates
|
||||
- certificaterequests
|
||||
- issuers
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- deletecollection
|
||||
- patch
|
||||
- update
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
||||
rbac.authorization.k8s.io/aggregate-to-edit: "true"
|
||||
rbac.authorization.k8s.io/aggregate-to-view: "true"
|
||||
name: cert-manager-view
|
||||
rules:
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- certificates
|
||||
- certificaterequests
|
||||
- issuers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: webhook
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-webhook:webhook-requester
|
||||
rules:
|
||||
- apiGroups:
|
||||
- admission.cert-manager.io
|
||||
resources:
|
||||
- certificates
|
||||
- certificaterequests
|
||||
- issuers
|
||||
- clusterissuers
|
||||
verbs:
|
||||
- create
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: cainjector
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-cainjector
|
||||
rules:
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- certificates
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- get
|
||||
- create
|
||||
- update
|
||||
- patch
|
||||
- apiGroups:
|
||||
- admissionregistration.k8s.io
|
||||
resources:
|
||||
- validatingwebhookconfigurations
|
||||
- mutatingwebhookconfigurations
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- update
|
||||
- apiGroups:
|
||||
- apiregistration.k8s.io
|
||||
resources:
|
||||
- apiservices
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- update
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- update
|
||||
|
|
@ -0,0 +1,64 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-certificates
|
||||
rules:
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- certificates
|
||||
- certificates/status
|
||||
- certificaterequests
|
||||
- certificaterequests/status
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- certificates
|
||||
- certificaterequests
|
||||
- clusterissuers
|
||||
- issuers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- certificates/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- acme.cert-manager.io
|
||||
resources:
|
||||
- orders
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
|
|
@ -0,0 +1,86 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-challenges
|
||||
rules:
|
||||
- apiGroups:
|
||||
- acme.cert-manager.io
|
||||
resources:
|
||||
- challenges
|
||||
- challenges/status
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- acme.cert-manager.io
|
||||
resources:
|
||||
- challenges
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- issuers
|
||||
- clusterissuers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- pods
|
||||
- services
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- apiGroups:
|
||||
- extensions
|
||||
- networking.k8s.io/v1
|
||||
resources:
|
||||
- ingresses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- delete
|
||||
- update
|
||||
- apiGroups:
|
||||
- acme.cert-manager.io
|
||||
resources:
|
||||
- challenges/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-clusterissuers
|
||||
rules:
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- clusterissuers
|
||||
- clusterissuers/status
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- clusterissuers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-ingress-shim
|
||||
rules:
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- certificates
|
||||
- certificaterequests
|
||||
verbs:
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- certificates
|
||||
- certificaterequests
|
||||
- issuers
|
||||
- clusterissuers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- networking.k8s.io/v1
|
||||
resources:
|
||||
- ingresses
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- networking.k8s.io/v1
|
||||
resources:
|
||||
- ingresses/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-issuers
|
||||
rules:
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- issuers
|
||||
- issuers/status
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- issuers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- create
|
||||
- update
|
||||
- delete
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRole
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-orders
|
||||
rules:
|
||||
- apiGroups:
|
||||
- acme.cert-manager.io
|
||||
resources:
|
||||
- orders
|
||||
- orders/status
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- acme.cert-manager.io
|
||||
resources:
|
||||
- orders
|
||||
- challenges
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- cert-manager.io
|
||||
resources:
|
||||
- clusterissuers
|
||||
- issuers
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- acme.cert-manager.io
|
||||
resources:
|
||||
- challenges
|
||||
verbs:
|
||||
- create
|
||||
- delete
|
||||
- apiGroups:
|
||||
- acme.cert-manager.io
|
||||
resources:
|
||||
- orders/finalizers
|
||||
verbs:
|
||||
- update
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- secrets
|
||||
verbs:
|
||||
- get
|
||||
- list
|
||||
- watch
|
||||
- apiGroups:
|
||||
- ""
|
||||
resources:
|
||||
- events
|
||||
verbs:
|
||||
- create
|
||||
- patch
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: cainjector
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-cainjector
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cert-manager-cainjector
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: cert-manager-cainjector
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-certificates
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cert-manager-controller-certificates
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: cert-manager
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-challenges
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cert-manager-controller-challenges
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: cert-manager
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-clusterissuers
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cert-manager-controller-clusterissuers
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: cert-manager
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-ingress-shim
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cert-manager-controller-ingress-shim
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: cert-manager
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-issuers
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cert-manager-controller-issuers
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: cert-manager
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-controller-orders
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: cert-manager-controller-orders
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
name: cert-manager
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
labels:
|
||||
app: webhook
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-webhook:auth-delegator
|
||||
roleRef:
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
kind: ClusterRole
|
||||
name: system:auth-delegator
|
||||
subjects:
|
||||
- apiGroup: ""
|
||||
kind: ServiceAccount
|
||||
name: cert-manager-webhook
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
apiVersion: v1
|
||||
data:
|
||||
namespace: cert-manager
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-parameters
|
||||
namespace: cert-manager
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
labels:
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: webhook
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager-webhook
|
||||
namespace: cert-manager
|
||||
spec:
|
||||
ports:
|
||||
- name: https
|
||||
port: 443
|
||||
targetPort: 6443
|
||||
selector:
|
||||
app: webhook
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
type: ClusterIP
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
labels:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
name: cert-manager
|
||||
namespace: cert-manager
|
||||
spec:
|
||||
ports:
|
||||
- port: 9402
|
||||
protocol: TCP
|
||||
targetPort: 9402
|
||||
selector:
|
||||
app: cert-manager
|
||||
app.kubernetes.io/component: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
kustomize.component: cert-manager
|
||||
type: ClusterIP
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue