Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
Choose a Base Repository
kubevirt/kubevirt
rmohr/kubevirt
Akrog/kubevirt
AlertBear/kubevirt
AlexxNica/kubevirt
AllenShi/kubevirt
AlonaKaplan/kubevirt
CretanCivil/kubevirt
Ethan-2017/kubevirt
FengYang/kubevirt
Glip-/kubevirt
HYDPublic/kubevirt
ILpinto/kubevirt
IsolationWyn/kubevirt
JiejunLi/kubevirt
Kryndex/kubevirt
MalloZup/kubevirt
MarSik/kubevirt
MegaByte875/kubevirt
Oliverlyn/kubevirt
RikTheunis/kubevirt
SchSeba/kubevirt
aburdenthehand/kubevirt
adityaramteke/kubevirt
admiyo/kubevirt
aglitke/kubevirt
ahadas/kubevirt
alexismonville/kubevirt
alexxa/kubevirt
alvaroaleman/kubevirt
annie2010/kubevirt
arilivigni/kubevirt
artmello/kubevirt
aslanbekirov/kubevirt
ateleshev/kubevirt
awels/kubevirt
awesome-docker/kubevirt
awesome-p2p/kubevirt
benwatcisco/kubevirt
berrange/kubevirt
bestwpw/kubevirt
bhavin192/kubevirt
bond95/kubevirt
booxter/kubevirt
bronhaim/kubevirt
cgvarela/kubevirt
chessbyte/kubevirt
chitteshsham/kubevirt
cliffy94/kubevirt
codevulture/kubevirt
coolsvap/kubevirt
ctrlaltdel/kubevirt
curx/kubevirt
cynepco3hahue/kubevirt
danielBelenky/kubevirt
danielerez/kubevirt
dankenigsberg/kubevirt
davidmr001/kubevirt
davidvossel/kubevirt
denverwilliams/kubevirt
derekwaynecarr/kubevirt
devconf-2017-forks/kubevirt
duyanyan/kubevirt
dzr0001/kubevirt
eedri/kubevirt
fabiand/kubevirt
fhaoquan/kubevirt
firemanxbr/kubevirt
fnet123/kubevirt
fromanirh/kubevirt
fuseknt/kubevirt
gbenhaim/kubevirt
gbraad/kubevirt
georgekuruvillak/kubevirt
gliptak/kubevirt
gofalconers/kubevirt
gonzolino/kubevirt
gouyang/kubevirt
grafuls/kubevirt
gszasz/kubevirt
guangxuli/kubevirt
gyliu513/kubevirt
humblec/kubevirt
ifireball/kubevirt
igoihman/kubevirt
imjoey/kubevirt
itamarh/kubevirt
j-griffith/kubevirt
jasonbrooks/kubevirt
jcpowermac/kubevirt
jerry7z/kubevirt
jhernand/kubevirt
jihoon5/kubevirt
jlevon/kubevirt
jmpq/kubevirt
jnaulty/kubevirt
jniederm/kubevirt
karmab/kubevirt
kenzhaoyihui/kubevirt
krishna2nd/kubevirt
krsacme/kubevirt
ksimon1/kubevirt
leongold/kubevirt
liangxia/kubevirt__kubevirt
liayan/kubevirt
livsky87/kubevirt
lkpdn/kubevirt
lowang-bh/kubevirt
lukas-bednar/kubevirt
machacekondra/kubevirt
mareklibra/kubevirt
matobet/kubevirt
mcastelino/kubevirt
mdshuai/kubevirt
mfrances17/kubevirt
mfranczy/kubevirt
mhenriks/kubevirt
michalskrivanek/kubevirt
mkim2001/kubevirt
mlsorensen/kubevirt
mmirecki/kubevirt
mpolednik/kubevirt
mureinik/kubevirt
myakove/kubevirt
myang32/kubevirt
mz-pdm/kubevirt
navinrio/kubevirt
nellyc/kubevirt
nertpinx/kubevirt
netroby/kubevirt
ngavrilo/kubevirt
norpol/kubevirt
odra/kubevirt
onesourceintegrations/kubevirt
oourfali/kubevirt
ousleyp/kubevirt
pcbailey/kubevirt
petrkotas/kubevirt
phoracek/kubevirt
pkliczewski/kubevirt
pro3spb/kubevirt
qwang1/kubevirt
radishgz/kubevirt
raghavendra-talur/kubevirt
raghavendrachari08/kubevirt
rancheral/kubevirt
ravisantoshgudimetla/kubevirt
ravitri/kubevirt
rawagner/kubevirt
rbramwell/kubevirt
reachkrr/kubevirt
rhevm-qe-automation/kubevirt
rollandf/kubevirt
rootfs/kubevirt
rowhit/kubevirt
rthallisey/kubevirt
rwsu/kubevirt
ryancee/kubevirt
sahid/kubevirt
scollier/kubevirt
senior7515/kubevirt
shiywang/kubevirt
sjas/kubevirt
slaykovsky/kubevirt
slintes/kubevirt
splitwood/kubevirt
stu-gott/kubevirt
stvnrsnbrg/kubevirt
sungwonh/kubevirt
surajnarwade/kubevirt
syswu/kubevirt
tanskann/kubevirt
tchughesiv/kubevirt
thiagodasilva/kubevirt
tiraboschi/kubevirt
tripledes/kubevirt
tylerauerbeck/kubevirt
unmeshdesale/kubevirt
vanloswang/kubevirt
vatsalparekh/kubevirt
vefimova/kubevirt
vinaygupta1234/kubevirt
virtlib/kubevirt
visheshtanksale/kubevirt
vladikr/kubevirt
warmchang/kubevirt
waynesun09/kubevirt
weiwang-linda/kubevirt
xsgordon/kubevirt
yanirq/kubevirt
yarntime/kubevirt
yuvalif/kubevirt
zvikorn/kubevirt
Nothing to show
Choose a base branch
api
apidoc
artifacts1
backingstore
bazel
binary
blub
box
boxes
bridge-release-0.6
bridge
build-speed
build_dockerized
cd
ci-cleanup
ci
cirros
cleanup
cluster-rm
cluster_clean
cobra
console_tests
containerized_ci
contributor
controller-health
converter
copy-artifacts
cors
coverall
coveralls
cpu
crd
debug
debugging
decentralized_pod_networking
defaulting
defaults
delete-all
deprecate-vagrant
deprecate-vagrant1
device_mapper
disable-mac-test
dns
doc-fix
docker-1.12
dockerized
docs
ds
emptyDisk
enwgo
ephemeral-images-idempotent
errors
events_again
events
exclude_vendor
fcevents
file-permission-investigations
final_states
fix-controller
fix-crds
fix-delete
fix-docker
fix-examples
fix-flaky-network-test
fix-interface-model
fix-launcher-flows
fix-libvirt-log-test
fix-migration
fix-pflag
fix-schema-conversion-tets
fix-swagger
fix-template-again
fix-templates
fix-test
fix-update-webhook-validation
fix-vm-vmi-controller-starving
fix_cli
fix_ovm
fix_weave
fix
fixci
flag
flaky
flannel
forgotten-prefix
forward-provider
free_domains
getting-started-fixes
ginkgo
go-report
goimports-comments
goimports
goverall
gpg
graceful-vm
graceful
handler-events
haproxy
health
host-network
hostname
improve-checks
improve-event-logging-in-tests
improve-unresponsive-detection
initializer-registration
inotify
irc
jenkins
job
k8s-1.9.3
kubeadm
kubernetes-1.6.1
kvm
kvm1
labels
launcher
libvirt-disks
libvirt
local-provider
logging
manifest-templates
manifests
mapping
master
memory-overcommit-v2-release-0.6
memory-overcommit-v2
memory-overcommit
merged_cluster_clean
migration-client
migration-doc
migration
mockgen
more_flaky
networks
newest-images
no-iscsi
no_docker
nocloud
node-network
node-tc
ocp-hack
openapi-generate-integration
openapi
openshiftci
osbs
overwrite
ovm-fix-again
ovm-fix
ovm-override
ovm-rework
packaging
pin-generators
pin_cli
pkgdir
pod-setup-rethough-release-0.6
pod-setup-rethough
pod-setup-rethought
prefix
prometheus
providers
prow
pxe
q35
rbac
regex
release-0.6-fix-goimports
release-0.6-fix-template-cores
release-0.6-memory-overcommit
release
remove-async-ginkgo
remove-vagrant
replicaset
requeue-fix
reviewer-guide
rmohr-patch-1
rmohr-patch-2
rolling-upgrade
scheduled-condition
sems
setup-stdci1
shfmt
shfmt1
should-not-have-been-possible-to-happen
socket-deletion
sockets
speedup-build
spice
ssh
stabilize-ci-wip
stabilize-ci
status
statusv2
storage-dependencies
stu-gott-libvirtd
subresources
sudo
swagger-codegen
swagger
tarball
terminated-failed
test
test1
test2
test100
timeout
timeouts
travis-release-nice-name
travis
true
unit-fix
vagrant-kube-1.7
vagrant-rsync
vagrant_again
vagrant
verify-build-is-clean
virt-api-debugable
virt-api-extra-header
virt-api
virt-category
virt-preview
virtcl-completion
virtio
vm-controller
vmi
vmrs-deletion-timestamp
vmrs-validation
websocket-fix1
websocket-virt-api
websocket-virtctl
websocket
wesec
workqueue
yaml
Nothing to show
Choose a Head Repository
kubevirt/kubevirt
rmohr/kubevirt
Akrog/kubevirt
AlertBear/kubevirt
AlexxNica/kubevirt
AllenShi/kubevirt
AlonaKaplan/kubevirt
CretanCivil/kubevirt
Ethan-2017/kubevirt
FengYang/kubevirt
Glip-/kubevirt
HYDPublic/kubevirt
ILpinto/kubevirt
IsolationWyn/kubevirt
JiejunLi/kubevirt
Kryndex/kubevirt
MalloZup/kubevirt
MarSik/kubevirt
MegaByte875/kubevirt
Oliverlyn/kubevirt
RikTheunis/kubevirt
SchSeba/kubevirt
aburdenthehand/kubevirt
adityaramteke/kubevirt
admiyo/kubevirt
aglitke/kubevirt
ahadas/kubevirt
alexismonville/kubevirt
alexxa/kubevirt
alvaroaleman/kubevirt
annie2010/kubevirt
arilivigni/kubevirt
artmello/kubevirt
aslanbekirov/kubevirt
ateleshev/kubevirt
awels/kubevirt
awesome-docker/kubevirt
awesome-p2p/kubevirt
benwatcisco/kubevirt
berrange/kubevirt
bestwpw/kubevirt
bhavin192/kubevirt
bond95/kubevirt
booxter/kubevirt
bronhaim/kubevirt
cgvarela/kubevirt
chessbyte/kubevirt
chitteshsham/kubevirt
cliffy94/kubevirt
codevulture/kubevirt
coolsvap/kubevirt
ctrlaltdel/kubevirt
curx/kubevirt
cynepco3hahue/kubevirt
danielBelenky/kubevirt
danielerez/kubevirt
dankenigsberg/kubevirt
davidmr001/kubevirt
davidvossel/kubevirt
denverwilliams/kubevirt
derekwaynecarr/kubevirt
devconf-2017-forks/kubevirt
duyanyan/kubevirt
dzr0001/kubevirt
eedri/kubevirt
fabiand/kubevirt
fhaoquan/kubevirt
firemanxbr/kubevirt
fnet123/kubevirt
fromanirh/kubevirt
fuseknt/kubevirt
gbenhaim/kubevirt
gbraad/kubevirt
georgekuruvillak/kubevirt
gliptak/kubevirt
gofalconers/kubevirt
gonzolino/kubevirt
gouyang/kubevirt
grafuls/kubevirt
gszasz/kubevirt
guangxuli/kubevirt
gyliu513/kubevirt
humblec/kubevirt
ifireball/kubevirt
igoihman/kubevirt
imjoey/kubevirt
itamarh/kubevirt
j-griffith/kubevirt
jasonbrooks/kubevirt
jcpowermac/kubevirt
jerry7z/kubevirt
jhernand/kubevirt
jihoon5/kubevirt
jlevon/kubevirt
jmpq/kubevirt
jnaulty/kubevirt
jniederm/kubevirt
karmab/kubevirt
kenzhaoyihui/kubevirt
krishna2nd/kubevirt
krsacme/kubevirt
ksimon1/kubevirt
leongold/kubevirt
liangxia/kubevirt__kubevirt
liayan/kubevirt
livsky87/kubevirt
lkpdn/kubevirt
lowang-bh/kubevirt
lukas-bednar/kubevirt
machacekondra/kubevirt
mareklibra/kubevirt
matobet/kubevirt
mcastelino/kubevirt
mdshuai/kubevirt
mfrances17/kubevirt
mfranczy/kubevirt
mhenriks/kubevirt
michalskrivanek/kubevirt
mkim2001/kubevirt
mlsorensen/kubevirt
mmirecki/kubevirt
mpolednik/kubevirt
mureinik/kubevirt
myakove/kubevirt
myang32/kubevirt
mz-pdm/kubevirt
navinrio/kubevirt
nellyc/kubevirt
nertpinx/kubevirt
netroby/kubevirt
ngavrilo/kubevirt
norpol/kubevirt
odra/kubevirt
onesourceintegrations/kubevirt
oourfali/kubevirt
ousleyp/kubevirt
pcbailey/kubevirt
petrkotas/kubevirt
phoracek/kubevirt
pkliczewski/kubevirt
pro3spb/kubevirt
qwang1/kubevirt
radishgz/kubevirt
raghavendra-talur/kubevirt
raghavendrachari08/kubevirt
rancheral/kubevirt
ravisantoshgudimetla/kubevirt
ravitri/kubevirt
rawagner/kubevirt
rbramwell/kubevirt
reachkrr/kubevirt
rhevm-qe-automation/kubevirt
rollandf/kubevirt
rootfs/kubevirt
rowhit/kubevirt
rthallisey/kubevirt
rwsu/kubevirt
ryancee/kubevirt
sahid/kubevirt
scollier/kubevirt
senior7515/kubevirt
shiywang/kubevirt
sjas/kubevirt
slaykovsky/kubevirt
slintes/kubevirt
splitwood/kubevirt
stu-gott/kubevirt
stvnrsnbrg/kubevirt
sungwonh/kubevirt
surajnarwade/kubevirt
syswu/kubevirt
tanskann/kubevirt
tchughesiv/kubevirt
thiagodasilva/kubevirt
tiraboschi/kubevirt
tripledes/kubevirt
tylerauerbeck/kubevirt
unmeshdesale/kubevirt
vanloswang/kubevirt
vatsalparekh/kubevirt
vefimova/kubevirt
vinaygupta1234/kubevirt
virtlib/kubevirt
visheshtanksale/kubevirt
vladikr/kubevirt
warmchang/kubevirt
waynesun09/kubevirt
weiwang-linda/kubevirt
xsgordon/kubevirt
yanirq/kubevirt
yarntime/kubevirt
yuvalif/kubevirt
zvikorn/kubevirt
Nothing to show
Choose a head branch
api
apidoc
artifacts1
backingstore
bazel
binary
blub
box
boxes
bridge-release-0.6
bridge
build-speed
build_dockerized
cd
ci-cleanup
ci
cirros
cleanup
cluster-rm
cluster_clean
cobra
console_tests
containerized_ci
contributor
controller-health
converter
copy-artifacts
cors
coverall
coveralls
cpu
crd
debug
debugging
decentralized_pod_networking
defaulting
defaults
delete-all
deprecate-vagrant
deprecate-vagrant1
device_mapper
disable-mac-test
dns
doc-fix
docker-1.12
dockerized
docs
ds
emptyDisk
enwgo
ephemeral-images-idempotent
errors
events_again
events
exclude_vendor
fcevents
file-permission-investigations
final_states
fix-controller
fix-crds
fix-delete
fix-docker
fix-examples
fix-flaky-network-test
fix-interface-model
fix-launcher-flows
fix-libvirt-log-test
fix-migration
fix-pflag
fix-schema-conversion-tets
fix-swagger
fix-template-again
fix-templates
fix-test
fix-update-webhook-validation
fix-vm-vmi-controller-starving
fix_cli
fix_ovm
fix_weave
fix
fixci
flag
flaky
flannel
forgotten-prefix
forward-provider
free_domains
getting-started-fixes
ginkgo
go-report
goimports-comments
goimports
goverall
gpg
graceful-vm
graceful
handler-events
haproxy
health
host-network
hostname
improve-checks
improve-event-logging-in-tests
improve-unresponsive-detection
initializer-registration
inotify
irc
jenkins
job
k8s-1.9.3
kubeadm
kubernetes-1.6.1
kvm
kvm1
labels
launcher
libvirt-disks
libvirt
local-provider
logging
manifest-templates
manifests
mapping
master
memory-overcommit-v2-release-0.6
memory-overcommit-v2
memory-overcommit
merged_cluster_clean
migration-client
migration-doc
migration
mockgen
more_flaky
networks
newest-images
no-iscsi
no_docker
nocloud
node-network
node-tc
ocp-hack
openapi-generate-integration
openapi
openshiftci
osbs
overwrite
ovm-fix-again
ovm-fix
ovm-override
ovm-rework
packaging
pin-generators
pin_cli
pkgdir
pod-setup-rethough-release-0.6
pod-setup-rethough
pod-setup-rethought
prefix
prometheus
providers
prow
pxe
q35
rbac
regex
release-0.6-fix-goimports
release-0.6-fix-template-cores
release-0.6-memory-overcommit
release
remove-async-ginkgo
remove-vagrant
replicaset
requeue-fix
reviewer-guide
rmohr-patch-1
rmohr-patch-2
rolling-upgrade
scheduled-condition
sems
setup-stdci1
shfmt
shfmt1
should-not-have-been-possible-to-happen
socket-deletion
sockets
speedup-build
spice
ssh
stabilize-ci-wip
stabilize-ci
status
statusv2
storage-dependencies
stu-gott-libvirtd
subresources
sudo
swagger-codegen
swagger
tarball
terminated-failed
test
test1
test2
test100
timeout
timeouts
travis-release-nice-name
travis
true
unit-fix
vagrant-kube-1.7
vagrant-rsync
vagrant_again
vagrant
verify-build-is-clean
virt-api-debugable
virt-api-extra-header
virt-api
virt-category
virt-preview
virtcl-completion
virtio
vm-controller
vmi
vmrs-deletion-timestamp
vmrs-validation
websocket-fix1
websocket-virt-api
websocket-virtctl
websocket
wesec
workqueue
yaml
Nothing to show
  • 3 commits
  • 10 files changed
  • 0 commit comments
  • 1 contributor
@@ -21,6 +21,7 @@ package main
import (
"fmt"
"io/ioutil"
"net/http"
"os"
"time"
@@ -36,6 +37,8 @@ import (
"k8s.io/client-go/tools/cache"
"k8s.io/client-go/tools/record"
"kubevirt.io/kubevirt/pkg/util"
"kubevirt.io/kubevirt/pkg/certificates"
"kubevirt.io/kubevirt/pkg/api/v1"
@@ -148,13 +151,22 @@ func (app *virtHandlerApp) Run() {
maxDevices,
)
// Bootstrapping. From here on the startup order matters
stop := make(chan struct{})
defer close(stop)
certStore, err := certificates.GenerateSelfSignedCert("virt-handler", certificates.GetNamespace())
certsDirectory, err := ioutil.TempDir("", "certsdir")
if err != nil {
panic(err)
}
defer os.RemoveAll(certsDirectory)
namespace, err := util.GetNamespace()
if err != nil {
glog.Fatalf("Error searching for namespace: %v", err)
}
certStore, err := certificates.GenerateSelfSignedCert(certsDirectory, "virt-handler", namespace)
if err != nil {
glog.Fatalf("unable to generate certificates: %v", err)
}
// Bootstrapping. From here on the startup order matters
stop := make(chan struct{})
defer close(stop)
go vmController.Run(3, stop)
http.Handle("/metrics", promhttp.Handler())
@@ -1,16 +1,12 @@
package certificates
import (
"io/ioutil"
"strings"
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/util/cert"
"k8s.io/client-go/util/cert/triple"
"k8s.io/client-go/util/certificate"
)
func GenerateSelfSignedCert(name string, namespace string) (certificate.FileStore, error) {
func GenerateSelfSignedCert(certsDirectory string, name string, namespace string) (certificate.FileStore, error) {
caKeyPair, _ := triple.NewCA("kubevirt.io")
keyPair, _ := triple.NewServerKeyPair(
caKeyPair,
@@ -22,10 +18,6 @@ func GenerateSelfSignedCert(name string, namespace string) (certificate.FileStor
nil,
)
certsDirectory, err := ioutil.TempDir("", "certsdir")
if err != nil {
return nil, err
}
store, err := certificate.NewFileStore(name, certsDirectory, certsDirectory, "", "")
if err != nil {
return nil, err
@@ -36,12 +28,3 @@ func GenerateSelfSignedCert(name string, namespace string) (certificate.FileStor
}
return store, nil
}
func GetNamespace() string {
if data, err := ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace"); err == nil {
if ns := strings.TrimSpace(string(data)); len(ns) > 0 {
return ns
}
}
return v1.NamespaceSystem
}
@@ -0,0 +1,13 @@
package certificates_test
import (
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"testing"
)
func TestCertificates(t *testing.T) {
RegisterFailHandler(Fail)
RunSpecs(t, "Certificates Suite")
}
@@ -0,0 +1,34 @@
package certificates_test
import (
"io/ioutil"
"os"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"kubevirt.io/kubevirt/pkg/certificates"
)
var _ = Describe("Certificates", func() {
var certDir string
BeforeEach(func() {
var err error
certDir, err = ioutil.TempDir("", "certsdir")
Expect(err).ToNot(HaveOccurred())
})
It("should be generated in temporary directory", func() {
store, err := certificates.GenerateSelfSignedCert(certDir, "testname", "testnamespace")
Expect(err).ToNot(HaveOccurred())
_, err = store.Current()
Expect(err).ToNot(HaveOccurred())
Expect(store.CurrentPath()).To(ContainSubstring(certDir))
})
AfterEach(func() {
os.RemoveAll(certDir)
})
})
@@ -20,7 +20,6 @@
package featuregates
import (
"io/ioutil"
"os"
"strings"
"time"
@@ -29,6 +28,8 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/wait"
"kubevirt.io/kubevirt/pkg/util"
"k8s.io/apimachinery/pkg/api/errors"
"kubevirt.io/kubevirt/pkg/kubecli"
@@ -41,26 +42,21 @@ const (
cpuManager = "CPUManager"
)
func getNamespace() string {
if data, err := ioutil.ReadFile("/var/run/secrets/kubernetes.io/serviceaccount/namespace"); err == nil {
if ns := strings.TrimSpace(string(data)); len(ns) > 0 {
return ns
}
}
return metav1.NamespaceSystem
}
func ParseFeatureGatesFromConfigMap() {
virtClient, err := kubecli.GetKubevirtClient()
if err != nil {
panic(err)
}
var cfgMap *k8sv1.ConfigMap
var curErr error
err = wait.PollImmediate(time.Second*1, time.Second*10, func() (bool, error) {
cfgMap, curErr = virtClient.CoreV1().ConfigMaps(getNamespace()).Get("kubevirt-config", metav1.GetOptions{})
namespace, curErr := util.GetNamespace()
if err != nil {
return false, err
}
cfgMap, curErr = virtClient.CoreV1().ConfigMaps(namespace).Get("kubevirt-config", metav1.GetOptions{})
if curErr != nil {
if errors.IsNotFound(curErr) {
View
@@ -0,0 +1,23 @@
package util
import (
"fmt"
"io/ioutil"
"os"
"strings"
"k8s.io/apimachinery/pkg/apis/meta/v1"
)
const ServiceAccountNamespaceFile = "/var/run/secrets/kubernetes.io/serviceaccount/namespace"
func GetNamespace() (string, error) {
if data, err := ioutil.ReadFile(ServiceAccountNamespaceFile); err == nil {
if ns := strings.TrimSpace(string(data)); len(ns) > 0 {
return ns, nil
}
} else if err != nil && !os.IsNotExist(err) {
return "", fmt.Errorf("failed to determine namespace from %s: %v", ServiceAccountNamespaceFile, err)
}
return v1.NamespaceSystem, nil
}
View
@@ -44,7 +44,7 @@ import (
apiregistrationv1beta1 "k8s.io/kube-aggregator/pkg/apis/apiregistration/v1beta1"
aggregatorclient "k8s.io/kube-aggregator/pkg/client/clientset_generated/clientset"
"kubevirt.io/kubevirt/pkg/certificates"
"kubevirt.io/kubevirt/pkg/util"
"kubevirt.io/kubevirt/pkg/api/v1"
"kubevirt.io/kubevirt/pkg/feature-gates"
@@ -109,6 +109,7 @@ type virtAPIApp struct {
keyBytes []byte
clientCABytes []byte
requestHeaderClientCABytes []byte
namespace string
}
var _ service.Service = &virtAPIApp{}
@@ -143,6 +144,10 @@ func (app *virtAPIApp) Execute() {
if err != nil {
panic(err)
}
app.namespace, err = util.GetNamespace()
if err != nil {
panic(err)
}
app.Compose()
app.ConfigureOpenAPIService()
@@ -392,7 +397,7 @@ func deserializeStrings(in string) ([]string, error) {
}
func (app *virtAPIApp) getClientCert() error {
authConfigMap, err := app.virtCli.CoreV1().ConfigMaps(metav1.NamespaceSystem).Get("extension-apiserver-authentication", metav1.GetOptions{})
authConfigMap, err := app.virtCli.CoreV1().ConfigMaps(app.namespace).Get("extension-apiserver-authentication", metav1.GetOptions{})
if err != nil {
return err
}
@@ -444,9 +449,8 @@ func (app *virtAPIApp) getClientCert() error {
func (app *virtAPIApp) getSelfSignedCert() error {
var ok bool
namespace := certificates.GetNamespace()
generateCerts := false
secret, err := app.virtCli.CoreV1().Secrets(namespace).Get(virtApiCertSecretName, metav1.GetOptions{})
secret, err := app.virtCli.CoreV1().Secrets(app.namespace).Get(virtApiCertSecretName, metav1.GetOptions{})
if err != nil {
if k8serrors.IsNotFound(err) {
generateCerts = true
@@ -460,9 +464,9 @@ func (app *virtAPIApp) getSelfSignedCert() error {
caKeyPair, _ := triple.NewCA("kubevirt.io")
keyPair, _ := triple.NewServerKeyPair(
caKeyPair,
"virt-api."+namespace+".pod.cluster.local",
"virt-api."+app.namespace+".pod.cluster.local",
"virt-api",
namespace,
app.namespace,
"cluster.local",
nil,
nil,
@@ -475,7 +479,7 @@ func (app *virtAPIApp) getSelfSignedCert() error {
secret := k8sv1.Secret{
ObjectMeta: metav1.ObjectMeta{
Name: virtApiCertSecretName,
Namespace: namespace,
Namespace: app.namespace,
Labels: map[string]string{
v1.AppLabel: "virt-api-aggregator",
},
@@ -487,7 +491,7 @@ func (app *virtAPIApp) getSelfSignedCert() error {
signingCertBytesValue: app.signingCertBytes,
},
}
_, err := app.virtCli.CoreV1().Secrets(namespace).Create(&secret)
_, err := app.virtCli.CoreV1().Secrets(app.namespace).Create(&secret)
if err != nil {
return err
}
@@ -523,7 +527,6 @@ func (app *virtAPIApp) createWebhook() error {
}
func (app *virtAPIApp) createValidatingWebhook() error {
namespace := certificates.GetNamespace()
registerWebhook := false
vmiPathCreate := vmiCreateValidatePath
vmiPathUpdate := vmiUpdateValidatePath
@@ -555,7 +558,7 @@ func (app *virtAPIApp) createValidatingWebhook() error {
}},
ClientConfig: admissionregistrationv1beta1.WebhookClientConfig{
Service: &admissionregistrationv1beta1.ServiceReference{
Namespace: namespace,
Namespace: app.namespace,
Name: virtApiServiceName,
Path: &vmiPathCreate,
},
@@ -576,7 +579,7 @@ func (app *virtAPIApp) createValidatingWebhook() error {
}},
ClientConfig: admissionregistrationv1beta1.WebhookClientConfig{
Service: &admissionregistrationv1beta1.ServiceReference{
Namespace: namespace,
Namespace: app.namespace,
Name: virtApiServiceName,
Path: &vmiPathUpdate,
},
@@ -598,7 +601,7 @@ func (app *virtAPIApp) createValidatingWebhook() error {
}},
ClientConfig: admissionregistrationv1beta1.WebhookClientConfig{
Service: &admissionregistrationv1beta1.ServiceReference{
Namespace: namespace,
Namespace: app.namespace,
Name: virtApiServiceName,
Path: &vmPath,
},
@@ -620,7 +623,7 @@ func (app *virtAPIApp) createValidatingWebhook() error {
}},
ClientConfig: admissionregistrationv1beta1.WebhookClientConfig{
Service: &admissionregistrationv1beta1.ServiceReference{
Namespace: namespace,
Namespace: app.namespace,
Name: virtApiServiceName,
Path: &vmirsPath,
},
@@ -642,7 +645,7 @@ func (app *virtAPIApp) createValidatingWebhook() error {
}},
ClientConfig: admissionregistrationv1beta1.WebhookClientConfig{
Service: &admissionregistrationv1beta1.ServiceReference{
Namespace: namespace,
Namespace: app.namespace,
Name: virtApiServiceName,
Path: &vmipresetPath,
},
@@ -667,7 +670,7 @@ func (app *virtAPIApp) createValidatingWebhook() error {
} else {
for _, webhook := range webhookRegistration.Webhooks {
if webhook.ClientConfig.Service != nil && webhook.ClientConfig.Service.Namespace != namespace {
if webhook.ClientConfig.Service != nil && webhook.ClientConfig.Service.Namespace != app.namespace {
return fmt.Errorf("ValidatingAdmissionWebhook [%s] is already registered using services endpoints in a different namespace. Existing webhook registration must be deleted before virt-api can proceed.", virtWebhookValidator)
}
}
@@ -701,7 +704,10 @@ func (app *virtAPIApp) createValidatingWebhook() error {
}
func (app *virtAPIApp) createMutatingWebhook() error {
namespace := certificates.GetNamespace()
namespace, err := util.GetNamespace()
if err != nil {
return err
}
registerWebhook := false
vmiPath := vmiMutatePath
@@ -775,7 +781,10 @@ func (app *virtAPIApp) createMutatingWebhook() error {
}
func (app *virtAPIApp) createSubresourceApiservice() error {
namespace := certificates.GetNamespace()
namespace, err := util.GetNamespace()
if err != nil {
return err
}
config, err := kubecli.GetConfig()
if err != nil {
return err
Oops, something went wrong.

No commit comments for this range