Skip to content
This repository was archived by the owner on Oct 28, 2024. It is now read-only.

Commit c4f9464

Browse files
authored
Merge pull request #167 from gyliu513/agg-api
✨ Enabled Aggregate API for Virtual Cluster
2 parents ea5f01b + 252897c commit c4f9464

File tree

5 files changed

+43
-1
lines changed

5 files changed

+43
-1
lines changed

virtualcluster/config/sampleswithspec/clusterversion_v1_loadbalancer.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,14 @@ spec:
159159
- --enable-admission-plugins=NamespaceLifecycle,NodeRestriction,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota
160160
- --apiserver-count=1
161161
- --endpoint-reconciler-type=master-count
162+
- --enable-aggregator-routing=true
163+
- --requestheader-client-ca-file=/etc/kubernetes/pki/root/tls.crt
164+
- --requestheader-allowed-names=""
165+
- --requestheader-username-headers=X-Remote-User
166+
- --requestheader-group-headers=X-Remote-Group
167+
- --requestheader-extra-headers-prefix=X-Remote-Extra-
168+
- --proxy-client-key-file=/etc/kubernetes/pki/frontproxy/tls.key
169+
- --proxy-client-cert-file=/etc/kubernetes/pki/frontproxy/tls.crt
162170
- --v=2
163171
ports:
164172
- containerPort: 6443
@@ -185,6 +193,9 @@ spec:
185193
- mountPath: /etc/kubernetes/pki/apiserver
186194
name: apiserver-ca
187195
readOnly: true
196+
- mountPath: /etc/kubernetes/pki/frontproxy
197+
name: front-proxy-ca
198+
readOnly: true
188199
- mountPath: /etc/kubernetes/pki/root
189200
name: root-ca
190201
readOnly: true
@@ -205,6 +216,10 @@ spec:
205216
secret:
206217
defaultMode: 420
207218
secretName: root-ca
219+
- name: front-proxy-ca
220+
secret:
221+
defaultMode: 420
222+
secretName: front-proxy-ca
208223
- name: serviceaccount-rsa
209224
secret:
210225
defaultMode: 420

virtualcluster/config/sampleswithspec/clusterversion_v1_nodeport.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,14 @@ spec:
165165
- --enable-admission-plugins=NamespaceLifecycle,NodeRestriction,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota
166166
- --apiserver-count=1
167167
- --endpoint-reconciler-type=master-count
168+
- --enable-aggregator-routing=true
169+
- --requestheader-client-ca-file=/etc/kubernetes/pki/root/tls.crt
170+
- --requestheader-allowed-names=""
171+
- --requestheader-username-headers=X-Remote-User
172+
- --requestheader-group-headers=X-Remote-Group
173+
- --requestheader-extra-headers-prefix=X-Remote-Extra-
174+
- --proxy-client-key-file=/etc/kubernetes/pki/frontproxy/tls.key
175+
- --proxy-client-cert-file=/etc/kubernetes/pki/frontproxy/tls.crt
168176
- --v=2
169177
ports:
170178
- containerPort: 6443
@@ -191,6 +199,9 @@ spec:
191199
- mountPath: /etc/kubernetes/pki/apiserver
192200
name: apiserver-ca
193201
readOnly: true
202+
- mountPath: /etc/kubernetes/pki/frontproxy
203+
name: front-proxy-ca
204+
readOnly: true
194205
- mountPath: /etc/kubernetes/pki/root
195206
name: root-ca
196207
readOnly: true
@@ -211,6 +222,10 @@ spec:
211222
secret:
212223
defaultMode: 420
213224
secretName: root-ca
225+
- name: front-proxy-ca
226+
secret:
227+
defaultMode: 420
228+
secretName: front-proxy-ca
214229
- name: serviceaccount-rsa
215230
secret:
216231
defaultMode: 420

virtualcluster/pkg/controller/controllers/provisioner/provisioner_native.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,9 @@ func (mpn *ProvisionerNative) createPKISecrets(caGroup *vcpki.ClusterCAGroup, na
218218
// create secret for etcd crt/key pair
219219
etcdSrt := secret.CrtKeyPairToSecret(secret.ETCDCASecretName,
220220
namespace, caGroup.ETCD)
221+
// create secret for front proxy crt/key pair
222+
frontProxySrt := secret.CrtKeyPairToSecret(secret.FrontProxyCASecretName,
223+
namespace, caGroup.FrontProxy)
221224
// create secret for controller manager kubeconfig
222225
ctrlMgrSrt := secret.KubeconfigToSecret(secret.ControllerManagerSecretName,
223226
namespace, caGroup.CtrlMgrKbCfg)
@@ -230,7 +233,7 @@ func (mpn *ProvisionerNative) createPKISecrets(caGroup *vcpki.ClusterCAGroup, na
230233
if err != nil {
231234
return err
232235
}
233-
secrets := []*v1.Secret{rootSrt, apiserverSrt, etcdSrt,
236+
secrets := []*v1.Secret{rootSrt, apiserverSrt, etcdSrt, frontProxySrt,
234237
ctrlMgrSrt, adminSrt, svcActSrt}
235238

236239
// create all secrets on metacluster
@@ -287,6 +290,13 @@ func (mpn *ProvisionerNative) createPKI(vc *tenancyv1alpha1.VirtualCluster, cv *
287290
}
288291
caGroup.ETCD = etcdCAPair
289292

293+
// create crt, key for frontendproxy
294+
frontProxyCAPair, frontProxyCrtErr := vcpki.NewFrontProxyClientCertAndKey(rootCAPair)
295+
if frontProxyCrtErr != nil {
296+
return frontProxyCrtErr
297+
}
298+
caGroup.FrontProxy = frontProxyCAPair
299+
290300
clusterIP := ""
291301
if isClusterIP {
292302
var err error

virtualcluster/pkg/controller/pki/pki.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ type ClusterCAGroup struct {
4444
RootCA *CrtKeyPair
4545
APIServer *CrtKeyPair
4646
ETCD *CrtKeyPair
47+
FrontProxy *CrtKeyPair
4748
CtrlMgrKbCfg string // the kubeconfig used by controller-manager
4849
AdminKbCfg string // the kubeconfig used by admin user
4950
ServiceAccountPrivateKey *rsa.PrivateKey

virtualcluster/pkg/controller/secret/secret.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ const (
3030
RootCASecretName = "root-ca"
3131
APIServerCASecretName = "apiserver-ca"
3232
ETCDCASecretName = "etcd-ca"
33+
FrontProxyCASecretName = "front-proxy-ca"
3334
ControllerManagerSecretName = "controller-manager-kubeconfig"
3435
AdminSecretName = "admin-kubeconfig"
3536
ServiceAccountSecretName = "serviceaccount-rsa"

0 commit comments

Comments
 (0)