Add selector to filter initinfra docs
airpship.org/phase: "initinfra" labeled documents are deployed with initinfra Change-Id: Ie4c9421b9c4b3fe44e20a843f7a3b6551c5a7e6d Closes: #125
This commit is contained in:
parent
ea3c6a626b
commit
af90464e66
@ -47,7 +47,7 @@ func (infra *Infra) Deploy() error {
|
|||||||
ao.SetDryRun(infra.DryRun)
|
ao.SetDryRun(infra.DryRun)
|
||||||
// If prune is true, set selector for purning
|
// If prune is true, set selector for purning
|
||||||
if infra.Prune {
|
if infra.Prune {
|
||||||
ao.SetPrune(document.DeployedByLabel + "=" + document.InitinfraIdentifier)
|
ao.SetPrune(document.InitInfraSelector)
|
||||||
}
|
}
|
||||||
|
|
||||||
globalConf := infra.RootSettings.Config()
|
globalConf := infra.RootSettings.Config()
|
||||||
@ -65,8 +65,8 @@ func (infra *Infra) Deploy() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Returns documents marked with initinfra phase label
|
||||||
selector := document.NewInintInfraSelector()
|
selector := document.NewInintInfraSelector()
|
||||||
// TODO (kkalynovskyi) Add Selector that would filter by label indicating wether to deploy it to k8s
|
|
||||||
docs, err := b.Select(selector)
|
docs, err := b.Select(selector)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -75,14 +75,5 @@ func (infra *Infra) Deploy() error {
|
|||||||
return document.ErrDocNotFound{}
|
return document.ErrDocNotFound{}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Label every document indicating that it was deployed by initinfra module for further reference
|
|
||||||
// This may be used later to get all resources that are part of initinfra module, for monitoring, alerting
|
|
||||||
// upgrading etc...
|
|
||||||
// also if prune is set to true, this fulfills requirement for all labeled document to be labeled.
|
|
||||||
// Pruning by annotation is not available, therefore we need to use label.
|
|
||||||
for _, doc := range docs {
|
|
||||||
doc.Label(document.DeployedByLabel, document.InitinfraIdentifier)
|
|
||||||
}
|
|
||||||
|
|
||||||
return kctl.Apply(docs, ao)
|
return kctl.Apply(docs, ao)
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,7 @@ metadata:
|
|||||||
name: test-rc
|
name: test-rc
|
||||||
namespace: test
|
namespace: test
|
||||||
labels:
|
labels:
|
||||||
airshipit.org/initinfra: "true"
|
airshipit.org/phase: "initinfra"
|
||||||
spec:
|
spec:
|
||||||
replicas: 1
|
replicas: 1
|
||||||
template:
|
template:
|
||||||
|
@ -5,12 +5,7 @@ const (
|
|||||||
BaseAirshipSelector = "airshipit.org"
|
BaseAirshipSelector = "airshipit.org"
|
||||||
EphemeralHostSelector = BaseAirshipSelector + "/ephemeral-node in (True, true)"
|
EphemeralHostSelector = BaseAirshipSelector + "/ephemeral-node in (True, true)"
|
||||||
EphemeralUserDataSelector = BaseAirshipSelector + "/ephemeral-user-data in (True, true)"
|
EphemeralUserDataSelector = BaseAirshipSelector + "/ephemeral-user-data in (True, true)"
|
||||||
|
InitInfraSelector = BaseAirshipSelector + "/phase = initinfra"
|
||||||
// Labels
|
|
||||||
DeployedByLabel = BaseAirshipSelector + "/deployed"
|
|
||||||
|
|
||||||
// Identifiers (Static label values)
|
|
||||||
InitinfraIdentifier = "initinfra"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Kinds
|
// Kinds
|
||||||
|
@ -99,10 +99,7 @@ func NewEphemeralNetworkDataSelector(bmhDoc Document) (Selector, error) {
|
|||||||
return selector, nil
|
return selector, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewInintInfraSelector returns selector of all initinfra documents
|
// NewInintInfraSelector returns selector to get deployable documents marked with initinfra label
|
||||||
// TODO (kkalynovskyi) add selector that would specify if document
|
|
||||||
// should be deployed to kubernetes cluster when appropriate label
|
|
||||||
// is added
|
|
||||||
func NewInintInfraSelector() Selector {
|
func NewInintInfraSelector() Selector {
|
||||||
return NewSelector()
|
return NewSelector().ByLabel(InitInfraSelector)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user