internal/resource/teamcity_resource_builder.go (29 lines of code) (raw):

package resource import ( "context" . "git.jetbrains.team/tch/teamcity-operator/api/v1beta1" "k8s.io/apimachinery/pkg/runtime" "sigs.k8s.io/controller-runtime/pkg/client" ) type TeamCityResourceBuilder struct { Instance *TeamCity Scheme *runtime.Scheme Client client.Client } type ResourceBuilder interface { BuildObjectList() ([]client.Object, error) Update(object client.Object) error GetObsoleteObjects(ctx context.Context) ([]client.Object, error) UpdateMayRequireStsRecreate() bool } func (builder *TeamCityResourceBuilder) ResourceBuilders() []ResourceBuilder { builders := []ResourceBuilder{ builder.PersistentVolumeClaim(), builder.ServiceAccount(), builder.Service(), builder.Ingress(), builder.StatefulSet(), builder.SecondaryStatefulSet(), } return builders }