mirror of
https://github.com/kubevela/kubevela.git
synced 2026-08-27 16:17:34 +00:00
fix kube-webhook-certgen to patch CRD conversation && remove cert-manager in CI e2e test && remove issuer create from CLI env (#1267)
* remove cert-manager in CI e2e test and remove issuer create from CLI env * update job patch image(https://github.com/wonderflow/kube-webhook-certgen)
This commit is contained in:
@@ -144,10 +144,8 @@ docker-push:
|
||||
e2e-setup:
|
||||
helm install --create-namespace -n flux-system helm-flux http://oam.dev/catalog/helm-flux2-0.1.0.tgz
|
||||
helm install kruise https://github.com/openkruise/kruise/releases/download/v0.7.0/kruise-chart.tgz
|
||||
helm repo add jetstack https://charts.jetstack.io
|
||||
helm repo update
|
||||
helm upgrade --install --create-namespace --namespace cert-manager cert-manager jetstack/cert-manager --version v1.2.0 --set installCRDs=true --wait
|
||||
helm upgrade --install --create-namespace --namespace vela-system --set image.pullPolicy=IfNotPresent --set admissionWebhooks.certManager.enabled=true --set image.repository=vela-core-test --set image.tag=$(GIT_COMMIT) --wait kubevela ./charts/vela-core
|
||||
helm upgrade --install --create-namespace --namespace vela-system --set image.pullPolicy=IfNotPresent --set image.repository=vela-core-test --set image.tag=$(GIT_COMMIT) --wait kubevela ./charts/vela-core
|
||||
ginkgo version
|
||||
ginkgo -v -r e2e/setup
|
||||
kubectl wait --for=condition=Ready pod -l app.kubernetes.io/name=vela-core,app.kubernetes.io/instance=kubevela -n vela-system --timeout=600s
|
||||
|
||||
@@ -50,8 +50,6 @@ type EnvMeta struct {
|
||||
Email string `json:"email,omitempty"`
|
||||
Domain string `json:"domain,omitempty"`
|
||||
|
||||
// Below are not arguments, should be auto-generated
|
||||
Issuer string `json:"issuer"`
|
||||
Current string `json:"current,omitempty"`
|
||||
}
|
||||
|
||||
|
||||
@@ -18,4 +18,11 @@ rules:
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
- apiGroups:
|
||||
- apiextensions.k8s.io
|
||||
resources:
|
||||
- customresourcedefinitions
|
||||
verbs:
|
||||
- get
|
||||
- update
|
||||
{{- end }}
|
||||
|
||||
@@ -32,6 +32,7 @@ spec:
|
||||
- --namespace={{ .Release.Namespace }}
|
||||
- --secret-name={{ template "kubevela.fullname" . }}-admission
|
||||
- --patch-failure-policy={{ .Values.admissionWebhooks.failurePolicy }}
|
||||
- --crds=applications.core.oam.dev
|
||||
restartPolicy: OnFailure
|
||||
serviceAccountName: {{ template "kubevela.fullname" . }}-admission
|
||||
{{- with .Values.admissionWebhooks.patch.affinity }}
|
||||
|
||||
@@ -88,8 +88,8 @@ admissionWebhooks:
|
||||
patch:
|
||||
enabled: true
|
||||
image:
|
||||
repository: jettech/kube-webhook-certgen
|
||||
tag: v1.5.0
|
||||
repository: wonderflow/kube-webhook-certgen
|
||||
tag: v2.1
|
||||
pullPolicy: IfNotPresent
|
||||
affinity: {}
|
||||
tolerations: []
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Route Trait Design
|
||||
|
||||
The main idea of route trait is to let users have an entrypoint to visit their App.
|
||||
The main idea of [route trait](https://github.com/oam-dev/catalog/tree/master/traits/routetrait) is to let users have an entrypoint to visit their App.
|
||||
|
||||
In k8s world, if you want to do so, you have to understand K8s [Serivce](https://kubernetes.io/docs/concepts/services-networking/service/)
|
||||
In k8s world, if you want to do so, you have to understand K8s [Service](https://kubernetes.io/docs/concepts/services-networking/service/)
|
||||
, [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/), [Ingress Controllers](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/).
|
||||
It's not easy to get all of these things work well.
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
title: Setting Up Deployment Environment
|
||||
---
|
||||
|
||||
A deployment environment is where you could configure the workspace, email for certificate issuer and domain for your applications globally. A typical set of deployment environment is `test`, `staging`, `prod`, etc.
|
||||
A deployment environment is where you could configure the workspace, email for contact and domain for your applications globally.
|
||||
A typical set of deployment environment is `test`, `staging`, `prod`, etc.
|
||||
|
||||
## Create environment
|
||||
|
||||
|
||||
@@ -64,16 +64,6 @@ func fixNewSchemaValidationCheck(crds []string) error {
|
||||
}
|
||||
ioutil.WriteFile(crd, []byte(strings.Join(newData, "\n")), 0644)
|
||||
}
|
||||
// fix issue https://github.com/oam-dev/kubevela/issues/993
|
||||
if strings.HasSuffix(crd, "legacy/charts/vela-core-legacy/crds/standard.oam.dev_routes.yaml") {
|
||||
for _, line := range strings.Split(string(data), "\n") {
|
||||
if strings.Contains(line, "default: Issuer") {
|
||||
continue
|
||||
}
|
||||
newData = append(newData, line)
|
||||
}
|
||||
ioutil.WriteFile(crd, []byte(strings.Join(newData, "\n")), 0644)
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Vendored
-37
@@ -25,23 +25,16 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
acmev1 "github.com/wonderflow/cert-manager-api/pkg/apis/acme/v1"
|
||||
certmanager "github.com/wonderflow/cert-manager-api/pkg/apis/certmanager/v1"
|
||||
v1 "github.com/wonderflow/cert-manager-api/pkg/apis/meta/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
k8stypes "k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/utils/pointer"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
"github.com/oam-dev/kubevela/apis/types"
|
||||
"github.com/oam-dev/kubevela/pkg/utils/system"
|
||||
)
|
||||
|
||||
// ProductionACMEServer is the production ACME Server from let's encrypt
|
||||
const ProductionACMEServer = "https://acme-v02.api.letsencrypt.org/directory"
|
||||
|
||||
// GetEnvDirByName will get env dir from name
|
||||
func GetEnvDirByName(name string) string {
|
||||
envdir, _ := system.GetEnvDir()
|
||||
@@ -79,9 +72,6 @@ func CreateOrUpdateEnv(ctx context.Context, c client.Client, envName string, env
|
||||
if envArgs.Email == "" {
|
||||
envArgs.Email = old.Email
|
||||
}
|
||||
if envArgs.Issuer == "" {
|
||||
envArgs.Issuer = old.Issuer
|
||||
}
|
||||
if envArgs.Namespace == "" {
|
||||
envArgs.Namespace = old.Namespace
|
||||
}
|
||||
@@ -103,33 +93,6 @@ func CreateOrUpdateEnv(ctx context.Context, c client.Client, envName string, env
|
||||
}
|
||||
}
|
||||
|
||||
// Create Issuer For SSL if both email and domain are all set.
|
||||
if envArgs.Email != "" && envArgs.Domain != "" {
|
||||
issuerName := "oam-env-" + envArgs.Name
|
||||
if err := c.Create(ctx, &certmanager.Issuer{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: issuerName, Namespace: envArgs.Namespace},
|
||||
Spec: certmanager.IssuerSpec{
|
||||
IssuerConfig: certmanager.IssuerConfig{
|
||||
ACME: &acmev1.ACMEIssuer{
|
||||
Email: envArgs.Email,
|
||||
Server: ProductionACMEServer,
|
||||
PrivateKey: v1.SecretKeySelector{
|
||||
LocalObjectReference: v1.LocalObjectReference{Name: "oam-env-" + envArgs.Name + ".key"},
|
||||
},
|
||||
Solvers: []acmev1.ACMEChallengeSolver{{
|
||||
HTTP01: &acmev1.ACMEChallengeSolverHTTP01{
|
||||
Ingress: &acmev1.ACMEChallengeSolverHTTP01Ingress{Class: pointer.StringPtr("nginx")},
|
||||
},
|
||||
}},
|
||||
},
|
||||
},
|
||||
},
|
||||
}); err != nil && !apierrors.IsAlreadyExists(err) {
|
||||
return message, err
|
||||
}
|
||||
envArgs.Issuer = issuerName
|
||||
}
|
||||
|
||||
data, err := json.Marshal(envArgs)
|
||||
if err != nil {
|
||||
return message, err
|
||||
|
||||
@@ -36,7 +36,6 @@ func TestUp(t *testing.T) {
|
||||
env := types.EnvMeta{
|
||||
Name: "up",
|
||||
Namespace: "env-up",
|
||||
Issuer: "up",
|
||||
}
|
||||
o := common.AppfileOptions{
|
||||
IO: ioStream,
|
||||
|
||||
Reference in New Issue
Block a user