diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..d11842f485 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +/ingress-operator diff --git a/Dockerfile b/Dockerfile index 32994e18ee..4df1be26dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,10 +6,8 @@ RUN make build FROM registry.svc.ci.openshift.org/openshift/origin-v4.0:base COPY --from=builder /ingress-operator/ingress-operator /usr/bin/ COPY manifests /manifests -RUN useradd ingress-operator -USER ingress-operator ENTRYPOINT ["/usr/bin/ingress-operator"] -LABEL io.openshift.release.operator true +LABEL io.openshift.release.operator="true" LABEL io.k8s.display-name="OpenShift ingress-operator" \ io.k8s.description="This is a component of OpenShift Container Platform and manages the lifecycle of ingress controller components." \ maintainer="Dan Mace " diff --git a/Dockerfile.rhel7 b/Dockerfile.rhel7 index a93cd90f7e..5a047e06a9 100644 --- a/Dockerfile.rhel7 +++ b/Dockerfile.rhel7 @@ -6,8 +6,6 @@ RUN make build FROM registry.svc.ci.openshift.org/ocp/4.0:base COPY --from=builder /ingress-operator/ingress-operator /usr/bin/ COPY manifests /manifests -RUN useradd ingress-operator -USER ingress-operator ENTRYPOINT ["/usr/bin/ingress-operator"] LABEL io.openshift.release.operator true LABEL io.k8s.display-name="OpenShift ingress-operator" \ diff --git a/cmd/ingress-operator/main.go b/cmd/ingress-operator/main.go index 1282e6bf9c..e91bd7a5de 100644 --- a/cmd/ingress-operator/main.go +++ b/cmd/ingress-operator/main.go @@ -1,226 +1,22 @@ package main import ( - "context" - "fmt" "os" - "github.com/ghodss/yaml" + "github.com/spf13/cobra" - "github.com/openshift/cluster-ingress-operator/pkg/dns" - awsdns "github.com/openshift/cluster-ingress-operator/pkg/dns/aws" - azuredns "github.com/openshift/cluster-ingress-operator/pkg/dns/azure" - gcpdns "github.com/openshift/cluster-ingress-operator/pkg/dns/gcp" logf "github.com/openshift/cluster-ingress-operator/pkg/log" - "github.com/openshift/cluster-ingress-operator/pkg/manifests" - "github.com/openshift/cluster-ingress-operator/pkg/operator" - operatorclient "github.com/openshift/cluster-ingress-operator/pkg/operator/client" - operatorconfig "github.com/openshift/cluster-ingress-operator/pkg/operator/config" - statuscontroller "github.com/openshift/cluster-ingress-operator/pkg/operator/controller/status" - - configv1 "github.com/openshift/api/config/v1" - - corev1 "k8s.io/api/core/v1" - - "k8s.io/apimachinery/pkg/types" - - "sigs.k8s.io/controller-runtime/pkg/client" - "sigs.k8s.io/controller-runtime/pkg/client/config" - "sigs.k8s.io/controller-runtime/pkg/metrics" - "sigs.k8s.io/controller-runtime/pkg/runtime/signals" -) - -const ( - // cloudCredentialsSecretName is the name of the secret in the - // operator's namespace that will hold the credentials that the operator - // will use to authenticate with the cloud API. - cloudCredentialsSecretName = "cloud-credentials" ) -var log = logf.Logger.WithName("entrypoint") +var log = logf.Logger.WithName("main") func main() { - metrics.DefaultBindAddress = ":60000" - - // Get a kube client. - kubeConfig, err := config.GetConfig() - if err != nil { - log.Error(err, "failed to get kube config") - os.Exit(1) - } - kubeClient, err := operatorclient.NewClient(kubeConfig) - if err != nil { - log.Error(err, "failed to create kube client") - os.Exit(1) - } - - // Collect operator configuration. - operatorNamespace := os.Getenv("WATCH_NAMESPACE") - if len(operatorNamespace) == 0 { - operatorNamespace = manifests.DefaultOperatorNamespace - } - log.Info("using operator namespace", "namespace", operatorNamespace) - - ingressControllerImage := os.Getenv("IMAGE") - if len(ingressControllerImage) == 0 { - log.Error(fmt.Errorf("missing environment variable"), "'IMAGE' environment variable must be set") - os.Exit(1) - } - releaseVersion := os.Getenv("RELEASE_VERSION") - if len(releaseVersion) == 0 { - releaseVersion = statuscontroller.UnknownVersionValue - log.Info("RELEASE_VERSION environment variable missing", "release version", statuscontroller.UnknownVersionValue) - } - - // Retrieve the cluster infrastructure config. - infraConfig := &configv1.Infrastructure{} - err = kubeClient.Get(context.TODO(), types.NamespacedName{Name: "cluster"}, infraConfig) - if err != nil { - log.Error(err, "failed to get infrastructure 'config'") - os.Exit(1) - } - - dnsConfig := &configv1.DNS{} - err = kubeClient.Get(context.TODO(), types.NamespacedName{Name: "cluster"}, dnsConfig) - if err != nil { - log.Error(err, "failed to get dns 'cluster'") - os.Exit(1) - } + var rootCmd = &cobra.Command{Use: "ingress-operator"} + rootCmd.AddCommand(NewStartCommand()) + rootCmd.AddCommand(NewRenderCommand()) - platformStatus, err := getPlatformStatus(kubeClient, infraConfig) - if err != nil { - log.Error(err, "failed to get platform status") + if err := rootCmd.Execute(); err != nil { + log.Error(err, "error") os.Exit(1) } - - operatorConfig := operatorconfig.Config{ - OperatorReleaseVersion: releaseVersion, - Namespace: operatorNamespace, - IngressControllerImage: ingressControllerImage, - } - - // Set up the DNS manager. - dnsProvider, err := createDNSProvider(kubeClient, operatorConfig, dnsConfig, platformStatus) - if err != nil { - log.Error(err, "failed to create DNS manager") - os.Exit(1) - } - - // Set up and start the operator. - op, err := operator.New(operatorConfig, dnsProvider, kubeConfig) - if err != nil { - log.Error(err, "failed to create operator") - os.Exit(1) - } - if err := op.Start(signals.SetupSignalHandler()); err != nil { - log.Error(err, "failed to start operator") - os.Exit(1) - } -} - -// createDNSManager creates a DNS manager compatible with the given cluster -// configuration. -func createDNSProvider(cl client.Client, operatorConfig operatorconfig.Config, dnsConfig *configv1.DNS, platformStatus *configv1.PlatformStatus) (dns.Provider, error) { - var dnsProvider dns.Provider - userAgent := fmt.Sprintf("OpenShift/%s (ingress-operator)", operatorConfig.OperatorReleaseVersion) - - switch platformStatus.Type { - case configv1.AWSPlatformType: - creds := &corev1.Secret{} - err := cl.Get(context.TODO(), types.NamespacedName{Namespace: operatorConfig.Namespace, Name: cloudCredentialsSecretName}, creds) - if err != nil { - return nil, fmt.Errorf("failed to get cloud credentials from secret %s/%s: %v", creds.Namespace, creds.Name, err) - } - provider, err := awsdns.NewProvider(awsdns.Config{ - AccessID: string(creds.Data["aws_access_key_id"]), - AccessKey: string(creds.Data["aws_secret_access_key"]), - DNS: dnsConfig, - Region: platformStatus.AWS.Region, - }, operatorConfig.OperatorReleaseVersion) - if err != nil { - return nil, fmt.Errorf("failed to create AWS DNS manager: %v", err) - } - dnsProvider = provider - case configv1.AzurePlatformType: - creds := &corev1.Secret{} - err := cl.Get(context.TODO(), types.NamespacedName{Namespace: operatorConfig.Namespace, Name: cloudCredentialsSecretName}, creds) - if err != nil { - return nil, fmt.Errorf("failed to get cloud credentials from secret %s/%s: %v", creds.Namespace, creds.Name, err) - } - provider, err := azuredns.NewProvider(azuredns.Config{ - Environment: "AzurePublicCloud", - ClientID: string(creds.Data["azure_client_id"]), - ClientSecret: string(creds.Data["azure_client_secret"]), - TenantID: string(creds.Data["azure_tenant_id"]), - SubscriptionID: string(creds.Data["azure_subscription_id"]), - DNS: dnsConfig, - }, operatorConfig.OperatorReleaseVersion) - if err != nil { - return nil, fmt.Errorf("failed to create Azure DNS manager: %v", err) - } - dnsProvider = provider - case configv1.GCPPlatformType: - creds := &corev1.Secret{} - err := cl.Get(context.TODO(), types.NamespacedName{Namespace: operatorConfig.Namespace, Name: cloudCredentialsSecretName}, creds) - if err != nil { - return nil, fmt.Errorf("failed to get cloud credentials from secret %s/%s: %v", creds.Namespace, creds.Name, err) - } - provider, err := gcpdns.New(gcpdns.Config{ - Project: platformStatus.GCP.ProjectID, - CredentialsJSON: creds.Data["service_account.json"], - UserAgent: userAgent, - }) - if err != nil { - return nil, fmt.Errorf("failed to create GCP DNS provider: %v", err) - } - dnsProvider = provider - default: - dnsProvider = &dns.FakeProvider{} - } - return dnsProvider, nil -} - -// getPlatformStatus provides a backwards-compatible way to look up platform status. AWS is the -// special case. 4.1 clusters on AWS expose the region config only through install-config. New AWS clusters -// and all other 4.2+ platforms are configured via platform status. -func getPlatformStatus(client client.Client, infra *configv1.Infrastructure) (*configv1.PlatformStatus, error) { - if status := infra.Status.PlatformStatus; status != nil { - // Only AWS needs backwards compatibility with install-config - if status.Type != configv1.AWSPlatformType { - return status, nil - } - - // Check whether the cluster config is already migrated - if status.AWS != nil && len(status.AWS.Region) > 0 { - return status, nil - } - } - - // Otherwise build a platform status from the deprecated install-config - type installConfig struct { - Platform struct { - AWS struct { - Region string `json:"region"` - } `json:"aws"` - } `json:"platform"` - } - clusterConfigName := types.NamespacedName{Namespace: "kube-system", Name: "cluster-config-v1"} - clusterConfig := &corev1.ConfigMap{} - if err := client.Get(context.TODO(), clusterConfigName, clusterConfig); err != nil { - return nil, fmt.Errorf("failed to get configmap %s: %v", clusterConfigName, err) - } - data, ok := clusterConfig.Data["install-config"] - if !ok { - return nil, fmt.Errorf("missing install-config in configmap") - } - var ic installConfig - if err := yaml.Unmarshal([]byte(data), &ic); err != nil { - return nil, fmt.Errorf("invalid install-config: %v\njson:\n%s", err, data) - } - return &configv1.PlatformStatus{ - Type: infra.Status.Platform, - AWS: &configv1.AWSPlatformStatus{ - Region: ic.Platform.AWS.Region, - }, - }, nil } diff --git a/cmd/ingress-operator/render.go b/cmd/ingress-operator/render.go new file mode 100644 index 0000000000..9e0327b178 --- /dev/null +++ b/cmd/ingress-operator/render.go @@ -0,0 +1,59 @@ +package main + +import ( + "fmt" + "io/ioutil" + "os" + "path/filepath" + + "github.com/spf13/cobra" + + "github.com/openshift/cluster-ingress-operator/pkg/manifests" +) + +func NewRenderCommand() *cobra.Command { + var options struct { + OutputDir string + Prefix string + } + + var command = &cobra.Command{ + Use: "render", + Short: "Render base manifests", + Long: `render emits the base manifest files necessary to support the creation of an ingresscontroller resource.`, + Run: func(cmd *cobra.Command, args []string) { + if err := render(options.OutputDir, options.Prefix); err != nil { + log.Error(err, "error rendering") + os.Exit(1) + } + }, + } + + command.Flags().StringVarP(&options.OutputDir, "output-dir", "o", "", "manifest output directory.") + command.Flags().StringVarP(&options.Prefix, "prefix", "p", "", "optional prefix for rendered filenames.") + if err := command.MarkFlagRequired("output-dir"); err != nil { + panic(err) + } + + return command +} + +func render(dir string, prefix string) error { + files := []string{ + manifests.CustomResourceDefinitionManifest, + manifests.NamespaceManifest, + } + + if err := os.MkdirAll(dir, 0750); err != nil { + return fmt.Errorf("failed to create output directory %q: %v", dir, err) + } + + for _, file := range files { + outputFile := filepath.Join(dir, prefix+filepath.Base(file)) + if err := ioutil.WriteFile(outputFile, manifests.MustAsset(file), 0640); err != nil { + return fmt.Errorf("failed to write %q: %v", outputFile, err) + } + fmt.Printf("wrote %s\n", outputFile) + } + return nil +} diff --git a/cmd/ingress-operator/start.go b/cmd/ingress-operator/start.go new file mode 100644 index 0000000000..9a419e213c --- /dev/null +++ b/cmd/ingress-operator/start.go @@ -0,0 +1,234 @@ +package main + +import ( + "context" + "fmt" + "os" + + "github.com/ghodss/yaml" + "github.com/spf13/cobra" + + "github.com/openshift/cluster-ingress-operator/pkg/dns" + awsdns "github.com/openshift/cluster-ingress-operator/pkg/dns/aws" + azuredns "github.com/openshift/cluster-ingress-operator/pkg/dns/azure" + gcpdns "github.com/openshift/cluster-ingress-operator/pkg/dns/gcp" + "github.com/openshift/cluster-ingress-operator/pkg/manifests" + "github.com/openshift/cluster-ingress-operator/pkg/operator" + operatorclient "github.com/openshift/cluster-ingress-operator/pkg/operator/client" + operatorconfig "github.com/openshift/cluster-ingress-operator/pkg/operator/config" + statuscontroller "github.com/openshift/cluster-ingress-operator/pkg/operator/controller/status" + + configv1 "github.com/openshift/api/config/v1" + + corev1 "k8s.io/api/core/v1" + + "k8s.io/apimachinery/pkg/types" + + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/client/config" + "sigs.k8s.io/controller-runtime/pkg/metrics" + "sigs.k8s.io/controller-runtime/pkg/runtime/signals" +) + +const ( + // cloudCredentialsSecretName is the name of the secret in the + // operator's namespace that will hold the credentials that the operator + // will use to authenticate with the cloud API. + cloudCredentialsSecretName = "cloud-credentials" +) + +func NewStartCommand() *cobra.Command { + return &cobra.Command{ + Use: "start", + Short: "Start the operator", + Long: `starts launches the operator in the foreground.`, + Run: func(cmd *cobra.Command, args []string) { + if err := start(); err != nil { + log.Error(err, "error starting") + os.Exit(1) + } + }, + } +} + +func start() error { + metrics.DefaultBindAddress = ":60000" + + // Get a kube client. + kubeConfig, err := config.GetConfig() + if err != nil { + log.Error(err, "failed to get kube config") + os.Exit(1) + } + kubeClient, err := operatorclient.NewClient(kubeConfig) + if err != nil { + log.Error(err, "failed to create kube client") + os.Exit(1) + } + + // Collect operator configuration. + operatorNamespace := os.Getenv("WATCH_NAMESPACE") + if len(operatorNamespace) == 0 { + operatorNamespace = manifests.DefaultOperatorNamespace + } + log.Info("using operator namespace", "namespace", operatorNamespace) + + ingressControllerImage := os.Getenv("IMAGE") + if len(ingressControllerImage) == 0 { + log.Error(fmt.Errorf("missing environment variable"), "'IMAGE' environment variable must be set") + os.Exit(1) + } + releaseVersion := os.Getenv("RELEASE_VERSION") + if len(releaseVersion) == 0 { + releaseVersion = statuscontroller.UnknownVersionValue + log.Info("RELEASE_VERSION environment variable missing", "release version", statuscontroller.UnknownVersionValue) + } + + // Retrieve the cluster infrastructure config. + infraConfig := &configv1.Infrastructure{} + err = kubeClient.Get(context.TODO(), types.NamespacedName{Name: "cluster"}, infraConfig) + if err != nil { + log.Error(err, "failed to get infrastructure 'config'") + os.Exit(1) + } + + dnsConfig := &configv1.DNS{} + err = kubeClient.Get(context.TODO(), types.NamespacedName{Name: "cluster"}, dnsConfig) + if err != nil { + log.Error(err, "failed to get dns 'cluster'") + os.Exit(1) + } + + platformStatus, err := getPlatformStatus(kubeClient, infraConfig) + if err != nil { + log.Error(err, "failed to get platform status") + os.Exit(1) + } + + operatorConfig := operatorconfig.Config{ + OperatorReleaseVersion: releaseVersion, + Namespace: operatorNamespace, + IngressControllerImage: ingressControllerImage, + } + + // Set up the DNS manager. + dnsProvider, err := createDNSProvider(kubeClient, operatorConfig, dnsConfig, platformStatus) + if err != nil { + log.Error(err, "failed to create DNS manager") + os.Exit(1) + } + + // Set up and start the operator. + op, err := operator.New(operatorConfig, dnsProvider, kubeConfig) + if err != nil { + return fmt.Errorf("failed to create operator: %v", err) + } + return op.Start(signals.SetupSignalHandler()) +} + +// createDNSManager creates a DNS manager compatible with the given cluster +// configuration. +func createDNSProvider(cl client.Client, operatorConfig operatorconfig.Config, dnsConfig *configv1.DNS, platformStatus *configv1.PlatformStatus) (dns.Provider, error) { + var dnsProvider dns.Provider + userAgent := fmt.Sprintf("OpenShift/%s (ingress-operator)", operatorConfig.OperatorReleaseVersion) + + switch platformStatus.Type { + case configv1.AWSPlatformType: + creds := &corev1.Secret{} + err := cl.Get(context.TODO(), types.NamespacedName{Namespace: operatorConfig.Namespace, Name: cloudCredentialsSecretName}, creds) + if err != nil { + return nil, fmt.Errorf("failed to get cloud credentials from secret %s/%s: %v", creds.Namespace, creds.Name, err) + } + provider, err := awsdns.NewProvider(awsdns.Config{ + AccessID: string(creds.Data["aws_access_key_id"]), + AccessKey: string(creds.Data["aws_secret_access_key"]), + DNS: dnsConfig, + Region: platformStatus.AWS.Region, + }, operatorConfig.OperatorReleaseVersion) + if err != nil { + return nil, fmt.Errorf("failed to create AWS DNS manager: %v", err) + } + dnsProvider = provider + case configv1.AzurePlatformType: + creds := &corev1.Secret{} + err := cl.Get(context.TODO(), types.NamespacedName{Namespace: operatorConfig.Namespace, Name: cloudCredentialsSecretName}, creds) + if err != nil { + return nil, fmt.Errorf("failed to get cloud credentials from secret %s/%s: %v", creds.Namespace, creds.Name, err) + } + provider, err := azuredns.NewProvider(azuredns.Config{ + Environment: "AzurePublicCloud", + ClientID: string(creds.Data["azure_client_id"]), + ClientSecret: string(creds.Data["azure_client_secret"]), + TenantID: string(creds.Data["azure_tenant_id"]), + SubscriptionID: string(creds.Data["azure_subscription_id"]), + DNS: dnsConfig, + }, operatorConfig.OperatorReleaseVersion) + if err != nil { + return nil, fmt.Errorf("failed to create Azure DNS manager: %v", err) + } + dnsProvider = provider + case configv1.GCPPlatformType: + creds := &corev1.Secret{} + err := cl.Get(context.TODO(), types.NamespacedName{Namespace: operatorConfig.Namespace, Name: cloudCredentialsSecretName}, creds) + if err != nil { + return nil, fmt.Errorf("failed to get cloud credentials from secret %s/%s: %v", creds.Namespace, creds.Name, err) + } + provider, err := gcpdns.New(gcpdns.Config{ + Project: platformStatus.GCP.ProjectID, + CredentialsJSON: creds.Data["service_account.json"], + UserAgent: userAgent, + }) + if err != nil { + return nil, fmt.Errorf("failed to create GCP DNS provider: %v", err) + } + dnsProvider = provider + default: + dnsProvider = &dns.FakeProvider{} + } + return dnsProvider, nil +} + +// getPlatformStatus provides a backwards-compatible way to look up platform status. AWS is the +// special case. 4.1 clusters on AWS expose the region config only through install-config. New AWS clusters +// and all other 4.2+ platforms are configured via platform status. +func getPlatformStatus(client client.Client, infra *configv1.Infrastructure) (*configv1.PlatformStatus, error) { + if status := infra.Status.PlatformStatus; status != nil { + // Only AWS needs backwards compatibility with install-config + if status.Type != configv1.AWSPlatformType { + return status, nil + } + + // Check whether the cluster config is already migrated + if status.AWS != nil && len(status.AWS.Region) > 0 { + return status, nil + } + } + + // Otherwise build a platform status from the deprecated install-config + type installConfig struct { + Platform struct { + AWS struct { + Region string `json:"region"` + } `json:"aws"` + } `json:"platform"` + } + clusterConfigName := types.NamespacedName{Namespace: "kube-system", Name: "cluster-config-v1"} + clusterConfig := &corev1.ConfigMap{} + if err := client.Get(context.TODO(), clusterConfigName, clusterConfig); err != nil { + return nil, fmt.Errorf("failed to get configmap %s: %v", clusterConfigName, err) + } + data, ok := clusterConfig.Data["install-config"] + if !ok { + return nil, fmt.Errorf("missing install-config in configmap") + } + var ic installConfig + if err := yaml.Unmarshal([]byte(data), &ic); err != nil { + return nil, fmt.Errorf("invalid install-config: %v\njson:\n%s", err, data) + } + return &configv1.PlatformStatus{ + Type: infra.Status.Platform, + AWS: &configv1.AWSPlatformStatus{ + Region: ic.Platform.AWS.Region, + }, + }, nil +} diff --git a/hack/update-generated-bindata.sh b/hack/update-generated-bindata.sh index 601e277f3d..43bc4344ff 100755 --- a/hack/update-generated-bindata.sh +++ b/hack/update-generated-bindata.sh @@ -5,6 +5,6 @@ OUTDIR="${OUTDIR:-$PWD}" # Using "-modtime 1" to make generate target deterministic. It sets all file # time stamps to unix timestamp 1 -GO111MODULE=on GOFLAGS=-mod=vendor go run github.com/kevinburke/go-bindata/go-bindata -mode 420 -modtime 1 -pkg manifests -o ${OUTDIR}/pkg/manifests/bindata.go assets/... +GO111MODULE=on GOFLAGS=-mod=vendor go run github.com/kevinburke/go-bindata/go-bindata -mode 420 -modtime 1 -pkg manifests -o ${OUTDIR}/pkg/manifests/bindata.go assets/... manifests/... gofmt -s -w ${OUTDIR}/pkg/manifests/bindata.go diff --git a/manifests/02-deployment.yaml b/manifests/02-deployment.yaml index 5b2cc60f06..e64e768da5 100644 --- a/manifests/02-deployment.yaml +++ b/manifests/02-deployment.yaml @@ -39,6 +39,7 @@ spec: image: openshift/origin-cluster-ingress-operator:latest command: - ingress-operator + - start env: - name: RELEASE_VERSION value: "0.0.1-snapshot" diff --git a/pkg/log/log.go b/pkg/log/log.go index 368e72bf8f..debc9790f9 100644 --- a/pkg/log/log.go +++ b/pkg/log/log.go @@ -23,7 +23,6 @@ func init() { // zapr defines an implementation of the Logger // interface built on top of Zap (go.uber.org/zap). Logger = zapr.NewLogger(zapLogger).WithName("operator") - Logger.Info("started zapr logger") } // SetRuntimeLogger sets a concrete logging implementation for all diff --git a/pkg/manifests/bindata.go b/pkg/manifests/bindata.go index cdbaa1c972..455b035c0e 100644 --- a/pkg/manifests/bindata.go +++ b/pkg/manifests/bindata.go @@ -11,6 +11,18 @@ // assets/router/service-account.yaml (213B) // assets/router/service-cloud.yaml (631B) // assets/router/service-internal.yaml (429B) +// manifests/00-cluster-role.yaml (2.305kB) +// manifests/00-custom-resource-definition-internal.yaml (4.452kB) +// manifests/00-custom-resource-definition.yaml (30.906kB) +// manifests/00-ingress-credentials-request.yaml (1.464kB) +// manifests/00-namespace.yaml (126B) +// manifests/01-cluster-role-binding.yaml (369B) +// manifests/01-role-binding.yaml (367B) +// manifests/01-role.yaml (477B) +// manifests/01-service-account.yaml (196B) +// manifests/02-deployment.yaml (1.527kB) +// manifests/03-cluster-operator.yaml (357B) +// manifests/image-references (313B) package manifests @@ -299,6 +311,246 @@ func assetsRouterServiceInternalYaml() (*asset, error) { return a, nil } +var _manifests00ClusterRoleYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xbc\x55\x4d\x8f\x13\x31\x0c\xbd\xcf\xaf\x88\xb6\x37\xa4\x4e\xc5\x0d\xf5\x86\x40\xe2\x04\x2b\x21\xc4\x3d\x4d\x3c\x1d\xd3\x4c\x1c\xd9\x4e\x4b\xf9\xf5\x68\xbe\x76\xd9\xe9\x6c\x3b\xc0\xc2\x69\xc6\x8e\xf3\xfc\x62\x3f\x27\x2b\xf3\x2e\x64\x51\x60\xc3\x14\xc0\x54\xc4\x46\x6b\x30\x94\x80\xad\x12\x1b\x54\x81\x50\x95\xc5\xca\x7c\xb9\x7f\x7f\xbf\x35\x6f\x4d\x20\x35\x54\xb5\x51\x02\x46\x6a\xca\xc1\x9b\x1d\x18\x86\x14\xac\x03\x6f\x76\xe7\x0e\x4a\x0c\xc6\x0e\x2a\xda\x06\x24\x59\x07\xd2\xa1\x9f\x6a\x74\x75\xb1\x7a\x9a\xc5\x3a\xcd\x36\x84\xb3\x89\x00\x5e\x8c\x75\x0e\x44\xca\xe2\x80\xd1\x6f\x47\x82\x9f\x29\x40\x61\x13\x7e\x05\x16\xa4\xb8\x35\xbc\xb3\xae\xb4\x59\x6b\x62\xfc\x61\x15\x29\x96\x87\x37\x52\x22\x6d\x8e\xaf\x8b\x06\xd4\x7a\xab\x76\x5b\x98\x8e\xc1\xb6\x4d\x16\xa5\xc6\x4a\xd7\x18\xf7\x0c\x22\xeb\x31\x7d\xc1\x39\x80\x6c\x8b\xb5\xb1\x09\x3f\x30\xe5\x24\xed\xb6\xb5\xb9\xbb\x2b\x8c\x61\x10\xca\xec\x60\xf0\x39\x8a\x15\xee\x1b\x9b\xa4\x33\x1f\x4f\xd7\x99\x02\x7c\x44\x07\xd6\x39\xca\x51\x7b\x1f\x44\x9f\x08\x47\x6b\x88\x18\x0d\xc7\x30\x2c\x24\xf2\x43\xfc\x11\xfa\xe0\x23\xf0\x6e\x64\xf2\xea\xae\xb8\xe4\x67\x53\xc7\x62\xc2\xd0\x43\x0a\x74\x6e\x96\x82\x24\x0a\xe8\xce\x97\x30\x89\xbc\x47\xe1\x9c\xda\xca\xee\xb2\xdf\xc3\x32\xbc\x86\x22\x2a\x31\xc6\x7d\xe9\x88\x81\xa4\x74\xd4\x5c\xc2\x0f\x75\x18\xa2\x27\xc8\x8e\xc1\x2a\x74\xbf\x7b\xd0\xee\x9b\x93\x6f\x5d\x97\xf9\x9e\x95\xc1\x4c\xef\x7a\x25\x75\xf2\x9c\x3a\x76\x18\x3d\xc6\x7d\xef\x7f\x8c\x98\x2c\x5d\xe7\x18\x50\xfa\x9f\x93\x55\x57\xcf\x70\x1d\x15\x57\x3e\x88\x71\x96\xe7\x20\x50\x47\x51\x99\x42\x00\x96\x67\xdc\x1b\x51\xab\x79\x51\x5b\x86\xcd\xe5\x42\x0a\x3e\x0a\x83\x23\x1e\x34\xf9\x68\xfe\x46\xca\x7e\x54\x6e\x9e\xb5\x62\x2b\xca\xd9\x69\x66\x78\x72\x50\x78\xc8\x3d\xfc\xd9\x84\xad\x6c\x60\x2a\x97\xb6\xfe\x7f\x98\x7e\x50\xc0\x58\x95\xeb\x3d\x7e\xa1\x1c\xb3\x25\x1c\xf5\xbd\x32\x1f\x91\x99\x18\xbc\xa9\x98\x1a\x63\x45\x40\x65\xc3\x94\x15\x78\xd3\x80\x32\x3a\xd9\x0c\x90\xeb\x56\x9e\xe5\xd9\x36\x61\x66\x2e\xda\x1d\x37\x98\xf5\xa8\x32\xc2\xce\x54\xf5\x3a\x9d\x05\x34\xda\xc9\x84\xa8\xe8\xae\x8f\xa6\xd2\x01\x22\xc3\x11\xe1\x34\xdf\x83\x97\x61\x72\xfb\x8e\x90\xbc\xfb\x06\x4e\xfb\x27\xe8\xdf\x12\x5a\xdc\xa1\x09\x81\xe9\x35\xf3\x1f\x89\xfc\x85\x74\x17\xf0\x10\x70\x99\x51\xcf\x37\xa8\x8c\x61\xed\x45\x08\xdf\xd5\x51\x14\x65\x8b\x17\xef\x5d\x16\xf8\x65\xf3\xa7\xf6\xa5\xee\x17\x6a\x12\x8d\xa0\x27\xe2\x43\xf1\x33\x00\x00\xff\xff\x14\x68\xb5\xf3\x01\x09\x00\x00") + +func manifests00ClusterRoleYamlBytes() ([]byte, error) { + return bindataRead( + _manifests00ClusterRoleYaml, + "manifests/00-cluster-role.yaml", + ) +} + +func manifests00ClusterRoleYaml() (*asset, error) { + bytes, err := manifests00ClusterRoleYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/00-cluster-role.yaml", size: 2305, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfc, 0xaa, 0xc3, 0x8a, 0xd5, 0x5a, 0xc9, 0xb5, 0xff, 0x27, 0xa7, 0x81, 0xf3, 0xa6, 0x2d, 0xc8, 0xca, 0x77, 0x4b, 0x2d, 0xaa, 0x61, 0x67, 0x62, 0x4, 0x5, 0xc8, 0xe8, 0x3d, 0x52, 0x28, 0x2f}} + return a, nil +} + +var _manifests00CustomResourceDefinitionInternalYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x58\x5f\x6f\xdb\x36\x10\x7f\xf7\xa7\x38\xa4\x0f\x7d\xb1\x24\xa4\xd9\x86\xc1\xc0\x30\x04\x49\x31\x04\x6b\x83\x22\x31\xb2\x61\x59\x80\xd2\xe4\x49\xe6\x2a\x91\x2a\xef\xe4\x2c\x19\xf6\xdd\x87\xa3\x2c\xff\x51\x2d\xc5\xeb\x30\xbe\x24\x3a\x9e\xee\x7e\xfc\xdd\x1f\x9e\x35\x49\x92\x64\xa2\x6a\x7b\x87\x81\xac\x77\x33\x50\xb5\xc5\x3f\x19\x9d\x3c\x51\xfa\xe9\x7b\x4a\xad\xcf\x56\xa7\x0b\x64\x75\x3a\xf9\x64\x9d\x99\xc1\x45\x43\xec\xab\x1b\x24\xdf\x04\x8d\x97\x98\x5b\x67\xd9\x7a\x37\xa9\x90\x95\x51\xac\x66\x13\x00\x1d\x50\x89\x70\x6e\x2b\x24\x56\x55\x3d\x03\xd7\x94\xe5\x04\xc0\xa9\x0a\x67\x60\x1c\x05\xd4\x3e\x18\x4a\xad\x2b\x02\x12\xa5\xbe\xc6\xa0\xd8\x07\xf9\xc7\xd1\xd2\xe6\x9c\x5a\x3f\xa1\x1a\xb5\x18\x2c\x82\x6f\xea\x19\x8c\x2b\xb7\xd6\x49\xf4\x01\x5a\xb4\x97\xd7\xb7\x37\xd1\x51\x94\x95\x96\xf8\xe7\x7d\xf9\x3b\x4b\x1c\xf7\xea\xb2\x09\xaa\xdc\x85\x16\xc5\x64\x5d\xd1\x94\x2a\xec\x6c\x4c\x00\x48\xfb\x1a\x67\x70\x72\x22\xff\x37\x8b\xb0\x66\x63\xed\x9a\x58\x71\x43\x33\xf8\xeb\xef\x09\xc0\x4a\x95\xd6\x44\x32\xda\x4d\x41\x7c\xfe\xe1\xea\xee\xec\x56\x2f\xb1\x52\xad\x10\xc0\x20\xe9\x60\xeb\xa8\xb7\x45\x07\x01\xeb\x80\x84\x8e\x09\x94\x88\xa1\x85\x90\xae\xdf\xaa\x83\x30\xc1\xb6\xf3\x2c\x6b\x27\x9e\x1b\x59\xcf\xfe\x6b\x01\xd0\xea\x80\x91\x08\x22\x01\x2f\x11\x56\xad\x0c\x0d\x50\x04\x07\x3e\x07\x5e\x5a\xda\xc2\x88\x07\xd9\x31\x0b\xa2\xa2\x1c\xf8\xc5\x1f\xa8\x39\x85\x5b\x0c\x62\x04\x68\xe9\x9b\xd2\x80\xf6\x6e\x85\x81\x23\xea\xc2\xd9\xe7\x8d\x65\x02\xf6\xd1\x65\xa9\x18\xd7\x11\xe8\x96\x75\x8c\xc1\xa9\x52\xa8\x6b\x70\x0a\xca\x19\xa8\xd4\x13\x04\x14\x1f\xd0\xb8\x1d\x6b\x51\x85\x52\x78\xef\x03\x82\x75\xb9\x9f\xc1\x92\xb9\xa6\x59\x96\x15\x96\xbb\x0c\xd6\xbe\xaa\x1a\x67\xf9\x29\xd3\xde\x71\xb0\x8b\x86\x7d\xa0\xcc\xe0\x0a\xcb\x8c\x6c\x91\xa8\xa0\x97\x96\x51\x73\x13\x30\x53\xb5\x4d\x22\x70\xc7\xb1\x0c\x2a\xf3\x6a\x13\xe0\xd7\x3b\x48\xf9\x49\x72\x80\x38\x58\x57\x6c\xc4\x31\xed\x06\x79\x97\xe4\x03\x2b\xb1\x6c\x5f\x6b\xf1\x6f\xe9\x15\x91\xb0\x72\xf3\xf6\x76\x0e\x9d\xd3\x18\x82\x7d\xce\x23\xdb\x3b\xc9\xb1\x25\x5e\x88\xb2\x2e\xc7\xd0\x06\x2e\x0f\xbe\x8a\x16\xd1\x99\xda\x5b\xc7\xf1\x41\x97\x16\xdd\x3e\xe9\xd4\x2c\x2a\xcb\x12\xe9\xcf\x0d\x12\x4b\x7c\x52\xb8\x50\xce\x79\x86\x05\x42\x53\x1b\xc5\x68\x52\xb8\x72\x70\xa1\x2a\x2c\x2f\x14\xe1\xff\x4e\xbb\x30\x4c\x89\x50\xfa\x32\xf1\xbb\xed\x67\x5f\xb1\x65\x6b\x23\xee\x5a\x4a\xb7\x0e\xd5\x50\x8c\x9c\xa3\x6b\x69\x56\x7b\xc2\x5e\x40\xe7\x4b\x84\xa5\x27\x96\xbe\xd3\x16\x0b\xee\x54\x69\xef\xcd\x83\xb0\x65\xb5\xda\xf3\xf9\xbb\x71\x5f\xf3\x77\x90\xfb\x10\x7d\x1c\xb4\x9f\xfb\x50\x29\x96\x26\xc9\xdf\x7d\x73\xd0\xb7\x54\x56\x81\xe1\x90\x73\xd9\x1f\xf3\x7e\xb3\x51\x8b\xb6\xe4\xb0\xed\x9b\x53\xc0\xb4\x48\xe1\xe2\xfa\xfc\xfd\xdb\x29\x9c\x4f\xe1\xf6\xe6\x6e\x0a\xf3\x5f\xe7\x80\xac\x8f\x65\x80\x55\x28\x90\xe9\x45\xae\xd7\x7a\x3d\x9e\x21\x66\xb6\xa4\x6c\xef\x7d\xcb\x58\x7d\x61\x74\x04\x46\xb7\xa5\x42\x50\x4f\x2f\xe6\x51\xdb\xe5\x8f\xc8\xa4\x67\xef\xfa\xa2\x41\x6c\x43\x36\xda\xa5\xbd\x33\xf1\xb6\x3d\xb8\x3b\x68\xf4\x18\xd3\xed\x2a\x15\xf1\x3c\x28\x47\xb6\xbb\xbe\x87\x75\xb7\x19\x27\xbd\x21\x61\x5b\xe1\x88\xee\x08\xe9\xdb\x55\x21\x91\x2a\x46\x7d\x1e\x65\x27\xa0\xa2\xfd\xfb\xef\xab\xcc\x7c\x19\xe2\xaf\x32\xc3\x07\x8a\xeb\x5f\x1a\x91\xb6\x6c\x03\x9a\x21\x33\xc9\x1a\xeb\xe0\xb6\xf8\x18\xd8\x3c\x98\xdd\x5f\x2a\xf4\x8b\xa2\x5b\xc6\xd1\x6f\xde\x0d\x1c\xb0\x3f\xd6\x88\xa6\x5c\x80\x0d\xa1\x91\x11\xa0\x9d\x3e\xd6\xb3\x8d\x74\x52\x34\xb1\x5c\x52\x38\x8f\x7f\x07\x20\x6b\xe5\xe4\x56\xb2\x46\x2e\x8b\xdc\xa2\x81\xc5\x93\x8c\x21\x57\x97\x20\x1d\x52\x15\x94\x1e\x7c\xf3\xe5\x12\xb0\x83\x14\xf7\x0e\x73\x62\xe3\x4d\x2e\x9d\x68\x03\x43\x9a\xb3\xe2\x0e\x5d\x77\xc6\xdc\xba\x7e\xab\xde\x5d\x5d\x2f\xdb\x3b\xfd\xef\x0e\xbc\x83\xf3\x5f\x6e\xe3\x73\x67\x31\x47\xd6\x4b\x34\xd0\xd0\x58\xba\x01\x7c\xbc\xba\xfc\x08\x8a\x40\x20\x3a\xb8\x3f\x7d\x88\xc6\x9e\x9b\x80\xc3\xe6\xe2\x4b\x23\x36\x95\x4c\x2d\x75\xc0\xc4\x20\x63\xa8\xac\x4c\x89\xf1\xda\x13\x0f\x6f\x1e\xa6\xe2\xe2\xa7\x8b\x0f\x87\x1c\x8c\x58\xdd\xba\x1e\x77\x70\xf6\x10\x39\xb9\x3f\x7d\xd8\x4e\x1a\xc6\x6b\x4a\xd5\x23\xa5\xaa\x52\xcf\xde\xa5\xda\x57\x99\x2e\x6d\xd6\x8e\x94\x59\xc0\x1c\x03\x3a\x8d\x59\xf0\x0d\xe3\xb7\x67\x59\x81\x9c\xb4\x2c\x27\x91\xe5\x25\x57\xe5\x2b\x1f\xe3\x39\x54\x38\xb2\xee\xdf\xf4\x9d\x56\x56\x07\x4f\x3e\xe7\xe8\x13\x5d\xd2\x50\xf4\xac\x84\xe2\xcc\x21\x3f\xfa\xf0\x29\x33\x8e\x32\xf1\xf3\xe3\xca\xe2\xe3\x0f\x71\x2f\xd1\xa5\x4d\x5a\x7c\xaf\xd4\x73\xb2\xd6\x4c\x8c\xa3\x88\x28\xa1\xa5\x7f\x1c\x43\x72\xb6\x83\x44\x97\xbe\x31\x69\xe1\x7d\x51\x62\xc4\x21\xfe\x04\xde\xce\xc9\x57\xa7\x59\xa5\x9c\x2a\xd0\x48\xe1\x91\x30\x70\x32\xde\xa6\xc6\xdb\x90\x54\xd6\x70\x7d\x28\xd3\x5e\x4e\xaa\xfc\x70\xc4\x55\x73\x64\xf3\xdc\x2f\x3a\x01\xd0\xaf\xaf\xcf\x0d\x86\xa7\x83\x65\x34\xe2\x7b\x53\x60\xd3\xcd\x9c\x1d\x7f\x63\x12\xab\xa2\xb0\xae\x50\xb5\x8d\x85\xd3\xaf\x65\xc9\xe8\xb1\x2a\x69\xf3\x7f\x9d\xd6\x73\x55\x50\x4c\x6c\x56\x45\x92\xdb\x92\x31\xd0\xf4\x3f\xe4\xf1\x00\xd0\x98\xd8\x9b\x9f\x28\x7b\x69\xfd\x52\xb4\x5f\xec\xfa\x03\x0a\xc3\xf7\x51\xd2\x5d\x08\x03\x63\xd7\x41\x83\x47\x8f\x5d\x3d\xd1\xaa\xfb\x70\xb1\x3a\xdd\x3e\xc5\x9c\x4b\xd6\x5f\x1a\xe2\x06\x00\xc9\xcf\x23\x33\x03\x0e\x0d\xae\x7f\xa3\xfb\x20\x93\x46\x2b\xd9\x5e\xf4\x4a\x6b\xac\x19\xcd\x75\xff\x4b\xc2\xc9\xc9\xde\x67\x82\xf8\xb8\x33\x8e\xc1\xfd\xc3\xa4\xb5\x8a\xe6\xae\xc3\x21\xc2\x7f\x02\x00\x00\xff\xff\xf2\x56\x01\xeb\x64\x11\x00\x00") + +func manifests00CustomResourceDefinitionInternalYamlBytes() ([]byte, error) { + return bindataRead( + _manifests00CustomResourceDefinitionInternalYaml, + "manifests/00-custom-resource-definition-internal.yaml", + ) +} + +func manifests00CustomResourceDefinitionInternalYaml() (*asset, error) { + bytes, err := manifests00CustomResourceDefinitionInternalYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/00-custom-resource-definition-internal.yaml", size: 4452, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb8, 0x97, 0x3b, 0x70, 0x3e, 0xf0, 0xaf, 0x5e, 0x3b, 0xac, 0xca, 0xaa, 0xe0, 0xa6, 0x36, 0x5f, 0x77, 0xf7, 0x9b, 0xd4, 0x7, 0xb4, 0xbd, 0xbe, 0x2e, 0x39, 0xff, 0xdb, 0x5e, 0x7f, 0xdd, 0x95}} + return a, nil +} + +var _manifests00CustomResourceDefinitionYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xec\x5d\x5f\x73\x1c\xb7\x91\x7f\xd7\xa7\xe8\xa2\x1f\x24\xe5\x76\x97\x96\x64\xbb\x7c\xbc\x54\xae\x68\x92\xb1\x5d\x91\x29\x95\x96\xe7\x5c\x72\xba\x52\x61\x67\x7a\x77\x11\x62\x80\x31\x80\x59\x6a\x9d\xca\x77\xbf\x6a\xfc\x99\x3f\x3b\x98\xd9\x21\x25\xdf\x43\xc2\xad\x4a\xc5\x9a\xc1\x34\x1a\xdd\x40\xe3\xd7\xdd\x40\xf3\xc9\x7c\x3e\x7f\xc2\x4a\xfe\x33\x6a\xc3\x95\x3c\x03\x56\x72\xfc\x68\x51\xd2\xbf\xcc\xe2\xf6\x5b\xb3\xe0\xea\x74\xf7\x62\x85\x96\xbd\x78\x72\xcb\x65\x7e\x06\x17\x95\xb1\xaa\x78\x87\x46\x55\x3a\xc3\x4b\x5c\x73\xc9\x2d\x57\xf2\x49\x81\x96\xe5\xcc\xb2\xb3\x27\x00\x99\x46\x46\x0f\x6f\x78\x81\xc6\xb2\xa2\x3c\x03\x59\x09\xf1\x04\x40\xb2\x02\xcf\x80\xcb\x8d\x46\x63\x32\x25\xad\x56\x42\xa0\x36\x0b\x55\xa2\x66\x56\x69\xfa\x0f\x69\xb6\x7c\x6d\x17\x5c\x3d\x31\x25\x66\x44\x70\xa3\x55\x55\x9e\x41\xba\x91\xa7\x6a\xa8\x1d\x80\xe7\xf2\x47\xdf\xc1\x45\xdd\x81\x7b\x27\xb8\xb1\x7f\x4a\xbf\x7f\xcd\x8d\x75\x6d\x4a\x51\x69\x26\x52\x2c\xba\xd7\x86\xcb\x4d\x25\x98\x4e\x34\x78\x02\x60\x32\x55\xe2\x19\x9c\x9c\xd0\x7f\x57\x2b\x1d\xa4\x14\x58\x33\x19\x13\xe8\xff\x13\x40\xb0\x15\x8a\x25\x0a\xcc\xac\xd2\x6f\x99\xdd\x9e\xc1\xc2\x58\x66\x2b\xb3\x30\xe1\x69\x68\x49\x32\x78\x87\xa5\xe0\x19\x33\xb1\x61\x89\xd9\x42\x87\x67\xb1\x99\xfb\xf8\xb0\xa1\xa7\xc8\x76\x8c\x0b\xb6\x12\xf8\xae\xfd\x8d\x7f\x79\x06\x7f\xff\xc7\x13\x80\x1d\x13\x3c\x77\x4a\xf3\x1c\x92\x84\xcf\xdf\xfe\xf8\xf3\xab\x65\xb6\xc5\x82\x45\xb6\x73\x34\x99\xe6\xa5\x6b\x07\x27\x3d\x31\x86\xf7\x2b\x34\xc0\xa0\x60\x92\x6d\x30\x8f\x92\x82\x46\x54\xb0\x56\x1a\xec\x16\x03\x51\x80\x4c\x54\xc6\xa2\x5e\xc0\xcd\x16\xdb\xed\x32\x26\xc1\xa0\xde\xf1\x0c\xe1\x4d\x89\x72\x49\x3a\x87\x77\xaa\xb2\x08\x4c\xe6\xf0\xa7\x6a\x85\x5a\xa2\x45\x13\x55\x5a\x93\xac\x85\xbf\x80\xf7\x12\xfe\xbc\x45\x09\x4c\xf6\x15\x0f\xdc\xf8\xe9\x8a\xf9\x0c\x18\x48\xbc\x4b\xf0\x5b\x13\xcd\xb1\x14\x6a\x5f\xa0\xb4\xad\xef\xc0\x2a\x60\x42\xa8\x3b\xa0\xc5\xa3\x25\x13\x60\x35\x5b\xaf\x79\x46\x6f\x34\xb2\x6c\x4b\x83\x8d\x03\x31\x60\xb7\xcc\xd6\x24\xf1\x63\xa9\x0c\x46\xc6\x40\xe9\x30\xbc\x16\xff\xff\x55\x92\x66\xe4\x06\xec\x96\x9b\xfa\x05\x14\x6c\x0f\x02\x99\xeb\x3f\xe7\x46\x57\x4e\x2d\x35\x61\x92\x71\x59\xad\x04\xcf\x60\xcd\x32\xfa\x5c\xa2\xbd\x53\xfa\x96\x06\x26\x31\xa3\xc6\x06\x98\x19\x1c\x35\x68\xdc\x71\xd3\x26\x49\x3d\xae\x10\xdc\xeb\x1c\x54\x65\x9d\x6c\xb7\xd6\x96\xe6\xec\xf4\xf4\xb6\x56\x06\x99\x8d\x5c\x65\xe6\x34\x53\x32\xc3\xd2\x9a\xd3\x38\xf6\x79\xe0\x81\xcb\xcd\x69\xe8\x71\x7e\xb8\xc6\xe8\x17\x54\x86\x3b\xd4\x50\x2a\x63\xf8\x4a\xe0\x0c\x0c\x99\xa6\x95\x40\xc8\x71\xcd\x2a\x61\x4d\x9c\x48\x50\x0a\x66\xd7\x4a\x17\xc0\x34\x42\x65\x30\x5f\xc0\x12\x11\x48\xf6\x8d\x40\x38\x8a\xdc\x7d\x51\x28\x4d\x34\x2c\xe3\xc2\x2c\x4e\x42\x83\x52\x93\x79\xb1\x3c\x2e\x57\xfa\xb5\x8c\x63\xfd\xec\x60\x11\x3c\xa5\x55\xe2\xdb\x10\x5b\x5c\x3a\x05\x23\xec\xfc\x33\xcc\xc1\xb8\x15\x04\x6a\x1d\xf5\x57\x6a\x34\x28\x2d\xeb\xa8\xcb\x2d\xba\x35\xcd\x51\xb5\xfa\x1b\x66\x96\x06\xa0\x89\x08\x98\xad\xaa\x44\x4e\x8a\xd9\xa1\xb6\xa0\x31\x53\x1b\xc9\x7f\xad\x29\x1b\x9a\x00\xd4\xa5\x60\x16\x8d\xed\x50\xe4\x32\xcc\xc8\x1d\x13\x15\xce\xdc\xa2\x21\x2d\x6a\xa4\x3e\xa0\x92\x2d\x6a\xae\x89\x59\xc0\x4f\x24\x1d\x2e\xd7\xea\xac\x56\xed\x86\xdb\xb8\x1d\x64\xaa\x28\x2a\xc9\xed\xfe\xd4\xe9\x8d\xaf\x2a\xab\xb4\x39\xcd\x71\x87\xe2\xd4\xf0\xcd\x9c\xe9\x6c\xcb\x2d\x66\xb6\xd2\x78\xca\x4a\x3e\x77\x8c\x4b\x37\xdd\x16\x45\xfe\x45\x3d\xb1\x9f\xb6\x38\xb5\x7b\x32\x9c\xc6\x6a\x2e\x37\xf5\x63\x67\xcb\x07\xe5\x4e\x96\x9c\x56\x21\x0b\x9f\x79\xfe\x1b\xf1\xfa\x05\x83\xf0\xee\x6a\x79\xd3\x2c\x1a\x52\x41\x57\xe6\x4e\xda\xcd\x67\xa6\x11\x3c\x09\x8a\xcb\x35\x6a\xaf\xb8\xb5\x56\x85\xa3\x88\x32\x2f\x15\x97\xd6\xfd\x23\x13\x1c\x65\x57\xe8\xa6\x5a\x15\xdc\x92\xa6\x7f\xa9\xd0\x58\xd2\xcf\x02\x2e\x98\x94\xca\xd2\xf2\xa9\x68\x39\xd3\x0c\xfd\x51\xc2\x05\x2b\x50\x5c\x30\x83\xbf\xb9\xd8\x49\xc2\x66\x4e\x22\x3d\x2e\xf8\xf6\x5e\xde\x6d\xe8\xa5\x55\x3f\x8e\xfb\x73\x52\x43\xf4\x92\x14\xe4\x6c\x5f\x89\x19\x5f\xf3\xcc\xcd\x79\xbf\x14\x68\x05\x1a\xae\x31\x87\x15\x6e\xd9\x8e\x2b\x1d\x9f\xf7\x8c\xf4\xa2\xd5\x45\x6a\x99\xfa\xae\x9d\x49\xb8\xa0\x77\xae\x23\xec\xbe\x3f\xdc\xbb\xfa\xed\xfd\x64\xd2\xb8\x46\x8d\x92\xa6\x8a\xa2\xb9\x85\x99\x46\xeb\xac\x22\xe3\xb2\x2d\xa4\x5a\x30\xdb\xda\x1e\x41\xd6\xa2\x46\x26\x8f\x06\xb7\x77\x2d\xfa\xe6\x75\xe1\x37\x25\x67\xed\x4d\x8f\x6a\xae\xe4\x53\x1b\xc4\xe6\x28\x70\x0d\xea\x4e\xb6\x7b\x98\x25\xc6\x4c\x63\xf0\xe6\xef\xbd\xec\xd1\xbc\x71\x9b\x90\x1b\x4f\x51\x99\x7a\x50\x8e\xbf\xb5\xa2\x1d\x8c\xd6\xcc\x2d\xee\x8d\xb3\x13\x6e\x06\x90\x25\x06\xb0\xc2\x2c\x32\x6d\x0f\x25\x0a\x9d\x01\xaf\xb9\xf0\x9b\x37\xad\xa2\xf0\xd1\x2d\xee\xcf\x88\xe2\xc1\xcb\xf7\x12\x7e\x5c\x43\x25\x0d\xda\x59\x8f\x26\x83\x3b\x2e\xf2\x8c\xe9\xbc\x43\x9e\xb4\x53\x59\x55\x30\xcb\x33\x26\xc4\x1e\x36\x28\x09\x0e\x62\xee\xb8\xf5\xa3\x76\xf8\xa1\xf9\xa8\x47\x9b\x1b\x8f\x74\xea\x8d\x23\xb1\xed\xe5\xaa\x20\xa9\x3c\x23\xaa\xa6\x5a\xf9\x7f\x9a\xe7\xae\x97\x36\x68\x89\xbf\x86\x8f\x56\xcf\x4f\x0d\x5c\x9c\xd3\x40\x04\x2d\xf9\x2e\xe3\x64\x94\x37\xfe\x8b\x3b\x6e\xb7\x49\xa2\x01\x11\x3d\x35\x60\x35\xe9\xca\x58\xa5\xd1\x6d\xb7\x37\x8e\xeb\x79\x65\x3a\x23\x85\x67\x77\x5b\xb4\x5b\xd4\x0d\x3b\x3d\x9a\x4a\x93\x94\xf4\x3c\x2c\x46\xcc\x9f\x4f\x64\xb0\x86\x5e\x4f\xfb\x13\x75\x55\x71\x61\xe7\x5c\xc2\x9b\xf3\xca\x6e\xfd\xac\xd7\xf5\xa6\x1a\x7f\x43\xab\x96\x7e\xce\x27\xe8\x3d\x3d\x34\xf7\xd7\xac\xc0\x68\x20\xc2\x1a\xb5\x49\xa3\x39\x06\x43\xd4\x8e\x70\x08\xde\x9d\x06\x0c\x32\xa7\xe1\xcd\xbd\x51\x33\xa7\xce\x8d\x38\xfd\xc2\xfd\x5f\x82\x1f\x80\x9b\x37\x97\x6f\xce\xe0\x3c\xcf\x41\x39\x51\x57\x06\xd7\x95\xf0\xc0\xc2\x2c\x5a\x68\x61\xe6\xf6\xae\x19\x54\x3c\xff\xcf\xa7\x09\x52\x49\xab\xdb\x7e\x75\x60\x67\x9d\x38\xdc\x3c\x3c\x62\xd4\xfc\xd4\x75\x86\xec\xf2\x7a\xe9\x44\x1b\x71\xe7\x88\x29\xea\x2f\x41\xbf\xb5\xd2\x9a\x22\x33\x98\x29\xb9\xe6\x9b\x4a\x23\x14\x95\xb0\xbc\x14\x08\x6b\x64\xb4\xd3\x18\x67\x20\x7e\x07\x7f\x0c\xcb\xe9\xb5\x62\xf9\x77\x4c\x30\x99\xa1\x5e\xfa\x7e\x7b\xc4\xeb\xed\xd3\xa1\x53\xb3\x25\xa3\x63\x2c\x4d\xb7\xcd\x7e\x06\xcd\x10\x20\xd1\x3f\x0d\x8a\x20\x8b\xce\xcd\xa2\x47\xd8\x21\xbe\x40\xfc\x6d\x4d\x7b\x19\x48\x2f\x3c\xa7\xce\xe8\x56\xe4\xc7\x01\x6b\x2d\xdd\x60\x4a\xc7\x0c\xdc\xcc\xef\xf7\xad\x35\x17\x57\x8f\x37\x29\x1e\x72\x07\xfe\x9d\x04\xad\x69\x19\x90\x34\xbf\x7d\x13\x1e\xf8\xa4\x65\xee\x11\x0d\x37\x51\x52\x5e\x1a\x5c\xe6\x7c\xc7\xf3\x8a\x89\x1e\x45\xef\x3a\x78\xc7\x0e\x0d\x18\xe5\x7c\x0d\x12\x0a\xd9\x0b\x4d\x32\xbd\x95\xea\x0e\xee\xb6\xa8\xdd\x06\x67\x99\xde\xa0\x6d\x1c\x97\xcb\xeb\x65\x8f\x68\x94\x37\xf1\x15\x46\xe7\xb6\x0f\x82\x32\x92\xff\x52\x21\xb0\x42\x91\x38\x85\xe8\x6f\xdd\xc6\x61\xce\xbe\x58\xfb\x68\xc8\xef\x09\x58\x94\x76\x3f\x6b\x00\xbe\x1b\xaf\xa3\xb9\xf0\xb3\xa0\xe3\xfb\x9f\x06\x33\xd9\xa3\xef\x5d\x64\xcf\x6d\xcf\x18\x0d\xae\xbe\xe1\xc9\x33\xbe\xec\x86\xbf\x6b\xaf\xa2\xa0\xc4\xf6\x1a\xec\xcb\xa5\xd9\x86\x22\x51\x27\x03\x6f\x6f\x82\xf3\x64\x66\x80\x92\xdc\x79\x10\x8a\xe5\xb0\x0a\xeb\xad\x36\xdb\x04\xf9\xfa\xdb\x2a\xda\x6c\xd1\xd9\x78\x3b\xc8\x85\x1b\x58\x31\x62\x54\x49\xb2\xa7\x9a\x19\xab\x2b\x07\x26\xef\x29\x77\x1f\x71\x88\xfe\x58\xc0\x0f\xe7\x7f\x5e\x9e\xf9\x06\x09\x03\x01\xcf\xdc\x26\x73\x15\xe6\x60\x8f\xa6\x8b\xaa\x3c\x27\x2a\xbf\x56\x1a\xcf\xa6\x51\x69\xbe\xfa\xfe\xe2\x6d\x7f\x77\x79\x3f\x91\x99\x86\xcc\x6b\xbe\xda\x71\x6d\xcf\x00\x7e\x50\xc6\x5e\x7b\x4d\xf4\xe9\x4a\x38\x97\xfb\xa0\xae\xda\x29\x75\xd8\x1b\x9e\x71\x99\x89\x2a\x27\xcb\x73\xad\x24\x3e\xaf\x65\x6f\x55\x9b\x66\xdf\x4e\xbc\x97\x23\x33\x33\xb1\x94\xee\xb3\xf9\x6e\x9b\x8e\x8f\xee\xc1\xad\xb6\xb0\x55\x22\x37\x50\x32\xcd\x0a\xb4\x64\x59\x22\xa0\x6a\x8d\xa4\xe6\x3a\xb9\x99\x26\xac\xff\x02\xde\x7a\x27\x0c\x94\x24\x18\xb2\x76\x92\xa3\xb9\x39\x2a\x9f\x91\x4d\x93\x7e\xa2\xa5\xe5\xa3\x63\x6c\x37\x1e\x1e\x64\x67\xdd\xa5\x18\x82\xc1\x91\x24\xe6\x5c\x8a\xc0\x98\xce\x20\x2e\x8a\xf4\xab\x43\x37\x8c\x5a\xba\x4d\x83\x76\x97\xe0\x8e\xb9\x67\xcc\xc2\xdd\x96\x87\xe8\x54\x67\x48\x03\x74\x1d\x7e\xf6\x01\xab\x7c\x01\x6f\x43\x5c\x26\x04\x0e\x5c\xe8\xe5\x24\x2e\x9c\x13\xb7\x03\x9e\xfc\x18\xe2\x0f\x27\x69\x21\x8d\x22\x21\x70\x7b\xcf\x2f\x15\xf9\x88\xa9\x91\xce\xfd\x30\xee\x3b\x1d\x4a\xcd\x77\x09\xef\xb0\x27\xb7\xd0\x6e\x78\x12\xbc\x0d\x0d\x12\x78\x26\xad\xb2\xa3\xb3\x3c\x50\xbc\xf7\x0c\x77\x2f\x8f\x8d\xe7\x24\xf6\xe2\xe2\x65\xfd\xc5\x47\x66\xa8\x32\xb8\x80\x9f\x1d\x9a\xf1\x4a\x4d\x0e\x84\x91\x15\x76\x20\x25\x65\x40\xdf\x4b\x08\x56\x2a\x4c\xb6\x09\x78\x13\x1c\xd8\xf3\x98\xac\x15\xd3\x6d\x93\x87\xb8\x58\xdc\x1e\x26\x7d\x48\x26\x02\x43\xb7\xe7\xf5\xb7\x3c\x08\xee\x79\xca\xc9\x6b\x22\xb9\x0e\x2a\x05\x5f\xb8\xd9\x64\xb9\xdc\x2c\xe0\x3c\x49\x32\xc5\xd6\x41\x3c\xb8\xbd\xd7\x37\x5d\x25\xbd\x72\xf0\x48\x70\x9a\x03\x93\x8a\xa3\x86\x67\xa7\x5f\xd0\x12\x1e\x5d\xc1\x7e\xf7\x6f\x10\xb6\x43\x01\x2d\x77\xbb\x41\xd7\x35\xb4\x8d\x41\x7c\xab\xd2\x46\xdc\x4d\x7c\x66\x7b\xe0\x3f\xca\xe5\xa9\x69\xc0\x25\x79\x23\x8b\x36\x84\x1f\x9a\x5d\x75\xaf\x7e\x81\x48\xf7\xcd\xaf\x4a\xa2\x09\x21\x56\xe7\xcb\xe4\xf2\x7e\x98\x10\x6a\x5c\xe8\xc3\xe2\x7f\x55\xd2\x67\x11\xc2\x43\xbf\xf8\xe8\xa9\x4f\x19\xb4\xa5\xe2\x19\x2a\x0e\x23\x7d\xf1\x47\xca\xaf\x34\xb9\xa4\x62\x0f\xa6\x2a\x4b\xa5\x6d\x64\x5f\xf9\x00\xcb\xf9\x9f\x97\x33\x8f\x60\x7c\x14\xf6\xfb\x8b\xb7\x35\x40\x48\xf8\x06\x41\x5d\xbf\xeb\xec\xa7\x13\x96\x16\x75\x27\x55\x8e\x40\x2c\xa4\x05\x1c\xc0\x7f\xfa\x73\x6e\xc2\x7c\x8d\x90\xfc\xb3\xaf\x34\x42\x11\xad\x45\x36\x83\x95\xaa\x12\x1e\x82\xa3\xa8\x5a\x63\x81\x6f\xbf\x74\x82\xfb\xea\xab\x57\x3e\xce\x43\x1e\x0d\xf8\x84\x48\xa9\x42\x62\x80\x6c\x73\x64\x75\xc8\x0e\x33\xd9\x4c\xc9\x2e\x80\x4e\x83\xf4\xf6\x60\x76\x9c\x0d\x8e\xbd\x61\x35\xb8\x70\x71\x83\x78\x2f\xe1\x52\xa1\x01\x82\x69\xe3\xf4\x07\xe7\x41\x5a\x0d\x13\x45\x9e\x24\x9a\x32\x78\xb3\xe8\xf8\x13\xa7\xf8\xb1\x14\x3c\xe3\x34\xa3\x6b\xf7\xb3\x11\x7c\x92\xa6\x73\x0b\x0b\x26\x2b\x17\x45\x3a\x32\xd4\x43\x94\x0a\xe3\x68\x60\x08\x09\xcc\xdd\x47\x53\x83\x28\x2e\xb6\x53\xb2\x0c\x63\xea\x75\xdc\xb1\xeb\x35\x6f\xfb\x73\x6b\x2e\x2c\xea\x90\xda\xb3\xa0\xd6\x0d\xf5\xbe\xc8\x8f\x07\x61\x48\xb6\xdc\x84\x0e\x5c\x58\x89\xba\x2b\x4a\xe1\xcc\x4e\x6a\x32\x9b\x2d\x8b\x7e\xf9\xa0\x53\x27\x23\x9f\xb4\x9f\xdd\xc7\x31\x28\x98\xcd\xb6\x57\x1f\x4b\xe2\x92\x1c\xca\xa3\xf8\xe2\xf0\x03\x1f\x85\x12\xdc\x38\xd1\xb8\x7c\x37\xc4\xd4\x76\xd4\x66\xe1\x12\x2e\xe9\x58\x9b\x8b\xf3\x35\xad\xdc\xbe\x70\x7e\x7d\x89\x79\xaa\x3d\xb7\x58\x0c\x20\xe5\x0e\x93\xe7\x23\x8c\x84\x64\x52\x7c\xe3\x22\x27\x61\x95\xa4\x97\x10\x04\x90\x44\x7b\xe8\x2d\xee\xfd\xea\x61\xb2\x3e\xa6\xe0\x49\x68\x14\x35\xee\xbe\xc5\xbd\x6b\x14\x52\x6d\xe9\x2d\xf5\x08\xf2\x07\xa2\x32\xf4\xea\x60\xb8\xd4\x5f\x40\x7c\x7e\xdc\xf4\xc0\x71\xe5\x67\x6d\x18\x2a\x2b\x4b\xc1\x07\xec\x84\xff\x59\x35\x04\xe0\x8f\x42\x78\xf0\xa7\x09\x9c\x44\x26\xb2\x5d\x0b\xb0\xc9\xca\x79\x11\x3f\x35\x5e\x9c\x34\xbf\xb6\xbc\x74\x29\x9a\x11\xae\xc3\xb2\x8c\x89\x4d\x0f\x6c\x23\x71\x3f\xa3\x7e\x94\x33\xb8\x56\x96\xfe\xef\xea\x23\x37\xd6\x24\xc3\x55\xcd\x8f\x0c\xf9\xb5\xb2\xae\xed\x27\x89\xc4\x33\x35\x51\x20\xc1\xc3\xa2\x09\x2a\x81\x69\xcd\xf6\x34\xae\x76\xde\xd3\x2c\xc8\x06\x90\x56\xe3\xf8\x46\x06\xc1\x0d\x6d\x28\x4a\xc7\x91\xdb\x6d\xcb\x89\x23\xe2\x31\xbe\x27\x95\x9c\xbb\x88\x5c\xa4\x3e\x42\xb4\x56\x1a\x37\x51\x94\x4a\x77\xe4\x35\xd0\xd1\x08\xcd\x15\x42\xe8\xde\xd9\x46\xff\x8d\xcf\xa1\x0b\x46\xd6\x34\x77\xdb\xbc\xcf\x01\x93\x17\xc3\x33\x28\x50\x6f\xc6\xf8\x2c\xc9\x4e\x0d\xab\x6e\xc4\x92\xf8\xdf\x04\xdd\xc6\x46\x8e\xdf\x64\x9b\x31\xbf\x96\xf6\xb4\x5b\x4c\x7f\x37\x1f\x57\xef\xa8\x97\x38\xce\x95\x33\xdf\xaf\xc9\x48\x24\x47\xcf\xf2\xdc\x9d\xf3\x62\xe2\xed\x11\xfb\x74\x44\x3e\xfd\x3d\xc3\x77\xea\xad\x6f\xc1\x4a\x9a\xd9\x7f\x27\x73\xea\x26\xca\x3f\xa0\x64\x5c\x9b\x05\x9c\xbb\xb3\x57\x22\xad\xd9\x76\xfb\x90\xd0\x6c\x93\x26\xaa\xdc\x00\xc9\x7c\xc7\x04\x99\x7a\x32\x1c\x12\x50\x0c\x43\x7a\xb5\xee\xed\x68\x33\xb8\xdb\x2a\x83\x21\x9f\x89\xc2\x41\xa5\x93\x5b\xdc\x9f\xcc\x3a\x2b\x0f\x78\xda\x94\x9e\xfc\x28\x4f\x66\x31\x8d\xd8\x5d\x07\x71\x9f\xf1\x2e\xc3\x89\x7b\x77\xb2\xe8\x6d\x82\x83\x0e\xd3\xe0\xc6\x38\x32\x23\x86\x41\x92\xca\xf1\x2d\xad\x2f\xea\xf3\x08\x40\x6a\x37\x0d\x51\x69\x53\x43\xc7\x88\x6e\x40\xed\x22\x50\xca\xb6\x98\x57\x22\x35\x35\x42\x6e\x2f\x05\x8c\x3a\x00\xa7\x4e\x0d\x74\x8f\xfa\x5c\xb7\x39\xe9\x11\x1f\x3c\xf5\x13\x7f\xa3\x09\x4a\x95\x0f\xe2\xc5\xb4\x48\xda\x70\xb1\x76\x0d\x0e\xb6\xdb\xbc\x95\xdb\x18\x44\xe8\x3d\x40\x3f\x0e\xf7\x42\xb8\x7d\x85\x96\x2d\xba\x61\x04\x35\xb0\x5a\x05\x97\xd5\xc7\x30\xc6\xb9\x56\x02\x0f\xbe\x23\xcf\x00\xf5\x19\x3c\x7d\x1a\xfa\xad\x7b\xad\xb3\xc8\xe9\x60\xd7\x21\x60\xa6\x69\x1f\xcc\xb6\x69\x73\x9d\xf4\x03\x8e\x61\xa0\x29\xe0\xb4\xa7\x99\xcf\x0c\x50\xe1\xde\x20\x15\x8e\x6f\x2f\x9f\x02\x56\x47\xf6\xac\xda\xbc\xdc\x13\xb0\x8e\x90\x9c\x02\x65\x61\x12\x9c\x85\x63\x90\xb6\x27\x98\xcf\x06\x6b\xe1\x08\xb4\x85\xa9\xfb\xfd\x14\x88\xdb\x1b\xc6\x54\x98\x7b\x74\x00\x6e\x26\xdc\x1f\xea\x1e\xa1\x4b\xda\x9d\x06\x77\xef\x21\xa6\x63\xb0\xb7\x27\xa4\x7b\x40\xdf\x23\xe3\x69\x03\xd4\xfb\xc2\xdf\x23\xa4\x0f\xa0\xf7\x34\x08\x7c\x4c\xfc\x1d\x56\xa6\xc1\xe0\x23\x24\x0f\x40\xf2\x31\x28\x0c\x53\xe0\x30\x4c\xd7\xfd\x71\x58\x0c\x47\xa1\x31\x8c\xc2\x63\x38\x0e\x91\xe1\x38\x4c\x9e\xc2\xe9\x11\xb8\x0c\xf7\x82\xcc\x30\x4d\x86\xbf\x09\x74\x86\xdf\x06\x3e\xc3\xa7\x41\xe8\xb1\x04\xe4\x6f\x04\xa3\xe1\x18\x94\x86\xa9\x0e\xd6\x50\x96\x4e\x09\x0c\xa7\x33\x26\x24\xeb\x9a\xc6\x5d\x9c\xd2\x7e\xf1\xe9\x40\xf2\xa6\x1b\x2d\x24\xa5\x92\xa1\x71\xbd\xb9\x06\x4b\x4c\x4f\x9b\x29\xc9\xaa\x4e\xb0\xfa\x94\x14\x63\xe7\x4c\xe6\xf3\x66\x08\xa7\x29\xf0\x37\x35\x96\x47\xbc\x97\x2a\xf7\x81\xf1\x9b\x9a\xa6\x1b\x87\xb5\x2c\x0b\xc7\xa5\x42\x6f\x83\xf6\x96\xc9\x3d\x38\xde\x3c\x82\x70\x33\x36\x40\x54\xab\xdd\x59\xb7\xdf\xd7\xcb\x63\x86\xeb\x35\x66\xf6\x0f\x21\x59\x39\xbc\xe7\x38\x2a\xd4\xa4\xde\x12\x7e\x1f\xff\xeb\x0f\x0f\x0d\xfb\xf9\xbe\x27\x62\xc7\x2b\xd7\xf8\x20\xed\xef\x87\xe9\xe9\x90\x68\x1c\x97\x0b\xb8\x22\x95\x8f\xd8\xed\x02\x99\x34\xbe\xb1\x3b\xe4\xd5\x26\x63\xc2\x31\xe6\xda\x1b\x98\xf9\xbb\x30\x38\x9a\x41\x0e\x92\xd7\xe4\xb6\x2d\xbd\x4b\x88\x33\x78\xeb\xce\x75\x36\x4f\xdc\x1a\xbf\x56\x57\x1f\x31\xab\xd2\x59\x71\xff\x9b\x60\x3a\xa7\x87\x4c\xff\xd4\x60\x4b\x3f\xce\x0e\xb6\x6c\xa6\xee\xb4\xa0\xa9\x97\xed\x80\x04\x6f\x71\xdf\x84\xed\x02\xa6\xf5\xe7\xdf\xa6\x84\xd9\x22\x32\xf0\x40\xe3\x3f\x62\x7e\xa8\x58\x71\xe9\x19\xf4\x9d\x46\x35\x8f\xe9\x41\x88\xda\x8c\x92\x43\x20\x84\x67\xed\xff\x31\xe2\xfb\xe6\x1e\x11\xdf\x71\xa4\xe7\x06\x92\x06\xc0\x4d\x80\x17\xae\x7e\xa9\x98\x58\xc0\x65\x73\xcc\x70\x84\x64\x68\x1c\x3e\xef\xed\x84\x75\xfa\x7c\xad\x74\xbc\x67\x13\x4e\x5e\x8e\x09\xdd\xd9\xae\x8c\xc9\xda\x40\x35\x33\xc3\xb8\x9b\x40\x50\x32\x6d\x79\x56\x09\xa6\x81\xd6\xf0\x46\xe9\x11\x20\x3a\x41\x27\xcd\xe4\x5d\x62\xa6\x64\x3e\xd5\x0f\xbd\x39\xfc\xae\xad\x25\x77\x9a\x04\x35\x57\xb9\xdb\x9d\x78\x31\xa6\x9c\x83\x25\xf4\xcc\x1f\x3f\x8a\x33\x59\xad\xa3\x6d\xaa\x17\xfd\xcc\x1f\xa5\xbb\xe3\x66\x9c\x2c\x37\x0d\x9c\xe0\x1b\xa9\x34\xe6\xcf\x1b\xcb\xdf\xac\xe6\x05\x7c\xb7\x8f\x1b\xde\xd8\x2a\xe3\x36\xa6\x41\x5d\xbc\x23\xf0\x19\x16\x54\x50\x57\x63\x22\xd6\x4a\xbb\x9b\x6a\xcf\xf2\xb1\x69\xe4\x92\xaa\x3b\x9e\xd9\xe7\x0b\xf8\x2b\x6a\xe5\x26\xa2\xc4\x0d\xb3\x7c\x57\xe3\x98\x78\xee\xc2\x86\xb3\x24\x6c\xcc\xc0\x7c\x09\xcf\x1c\x41\xe0\x45\x81\x39\x67\x16\xc5\xfe\x79\xcc\x30\x9a\xbd\xb1\x58\x0c\x4f\x98\xb5\xd2\x05\xb3\x67\xc0\xa5\xfd\xe6\xab\x23\xd3\xca\x9d\x2c\x1d\x3c\x16\xe6\x58\x9f\x38\x97\x7e\x8e\x47\x9a\x1b\xe9\xf9\x53\xce\x07\x53\x23\x6c\xc3\x47\xac\xeb\xa0\xdf\xd5\xf2\xb3\xe2\xfd\xb9\xe8\x44\x8d\x1a\xd7\x38\xd9\xe0\x6f\x34\x27\x19\x68\x74\xd7\x7d\xc3\xba\xfa\x84\xd5\xf7\xe0\xc8\xfc\xe0\x87\xf1\xfe\xef\x68\x80\x36\x36\x8a\x12\x8f\x57\xae\x64\x55\xac\xd0\x5d\xb8\x4a\xde\xfb\xf4\x1f\xf5\x87\x9b\x88\xc2\x5a\x05\x2f\x0f\x1b\xb6\xa6\xd6\xab\x97\xc9\xf1\xa4\x26\x94\x56\x95\x9d\x98\x97\xef\x34\x1d\xcf\xc9\xfb\xfb\x55\x75\xfe\xbd\x37\xa4\x87\xe7\xe3\x63\xfe\xbd\x47\xf2\x31\x1f\xff\x98\x8f\x4f\x0f\xf7\x31\x1f\xff\x98\x8f\x4f\xfc\x1e\xf3\xf1\x8f\xf9\xf8\xc3\x77\x8f\xf9\xf8\xee\xef\x5f\x38\x1f\x6f\x85\x59\x62\x56\x69\x6e\xf7\x6f\xb5\x5a\x73\x71\xe4\x6a\x7b\xbf\x7d\x1d\x9e\x71\x67\xbe\x09\xbc\xf8\x6b\x0c\x37\xaf\x97\xed\x6a\x20\x3d\x7e\x1d\xe4\xe9\x17\xeb\x99\x76\x8d\x8c\x9e\xb3\x92\xfb\x1b\xc1\xf7\x3b\xaa\x1d\xcb\x35\xb8\x9e\xae\x95\x73\xb6\xdc\x6d\x95\xfa\xee\x26\x11\x7f\x23\xf2\x19\xb8\x1b\x26\xc1\xfb\xf1\xca\xfc\x49\xe5\xa8\xfb\xe7\xec\xcb\x20\x0a\x77\x19\xcb\x73\xed\xbd\x4d\xf2\xbe\xe2\xcb\x4e\xc8\xd2\x1d\x91\xaf\x7c\x7d\x08\xab\x20\xdb\x32\x99\xb0\x64\x2b\xb4\x77\x88\x92\x36\x42\x64\x86\x0c\xff\x1f\x95\x06\xfc\xc8\x08\x2a\xce\x60\xc3\x77\x28\xc9\x20\x76\x2a\x20\xf8\xbb\x16\xa1\xda\x41\x33\x80\x41\xa6\xe3\x99\x6c\x92\x6b\xe8\x08\xfe\x7b\xf1\x97\xc5\x5f\x69\xc8\x50\x95\x1b\xcd\x72\xf4\xe5\x66\x5a\x2f\xff\xed\x05\x14\x09\xd3\x92\x31\xea\xdb\x97\x7d\x49\x0f\xdc\x2a\x77\x29\xbc\x09\x2f\xa7\x21\x72\xdf\x95\xd2\x68\x2a\xe1\xc0\x31\xa7\x41\x53\x33\x55\xf5\x73\xfc\x63\x98\x2a\x73\x15\xa6\x8e\x47\xc8\x7d\x3b\x6f\xa6\xdc\xb5\xf6\x78\x35\x80\x26\xb5\x09\xf3\x3f\x8e\x6f\x01\xdf\xa5\x2d\x15\x7e\xb4\xb4\x96\xc5\x1e\x32\xa6\x1d\xcc\x8f\xf7\x50\x02\xfd\x28\x20\xf2\xa1\xa4\xbf\xe8\xdb\x91\xd5\x40\xc8\x9d\x49\x92\x60\xc6\x2c\x33\x56\xab\x72\xcb\xb3\x05\x9c\xcb\x38\x2d\x0e\x89\x0b\xa5\x6e\x0d\x08\x7e\xeb\x0b\x94\xa4\x0d\xb9\x3b\xda\x91\xf1\x72\x8b\xda\xf8\xdb\x94\x73\xb8\xba\xb8\xfc\xe1\x6a\x7e\x75\x71\xb9\x3c\x9f\x5f\xfc\x70\x7e\xf1\xc3\xf9\xcb\x2f\xe7\x6f\xdf\xbc\xfe\xcb\x8b\x57\x5f\x7e\xdd\x69\xf3\x2e\xd5\x22\xdd\xcf\xe1\x67\xe7\x57\xcb\x17\x2f\xbf\x9d\x7f\x7f\xf1\xd3\x7c\xf9\xc3\xf9\xcb\xaf\xbf\x49\x74\xde\x6b\x33\x44\xba\xe0\xf2\xe6\xf5\xb2\x2e\x39\x76\xf3\x7a\xb9\x7b\xb1\x78\x91\xca\x03\xc8\x4a\xb8\xa2\x55\x67\x60\x75\x95\xd2\xde\x31\x64\x1e\x65\x35\x25\x9d\x76\x12\x1a\xb7\x9d\xc9\x56\xf5\x8d\x40\x0b\x98\xd8\x28\xcd\xed\xb6\x18\x06\xe7\xce\x52\xd1\x1e\x20\x71\xa3\x2c\xf7\xb7\xcb\x3d\x2c\x22\x42\x34\x3b\xb7\x4c\xe6\x66\xcb\x6e\x71\x01\x75\xe4\xd3\x24\x97\x6a\xfc\x69\x2c\xd4\x0e\x01\xa5\xd5\xdc\xfb\x2e\x5c\xfb\xfd\x4d\xe6\x06\x72\xe5\x43\x55\xfe\xe2\xc9\x02\x3a\x16\x68\x98\x51\x6f\x83\x2e\xaf\x96\xf3\x8b\xef\x2e\x5e\x91\xde\x00\x9e\xed\x59\x21\x9e\x9f\x25\x27\x5b\xbb\x65\x4a\x61\x70\x1c\xae\x4d\x89\x52\x1e\xcb\xbc\x76\x26\xd0\x24\xdd\x76\x3e\x19\xd2\x70\xc1\x25\x2f\x98\x88\x85\x9b\xc6\xb2\x9a\x51\x8f\xa5\x56\x56\x65\x4a\x78\x9d\x93\x77\x3f\x41\xe5\x83\x84\x3b\xdb\x46\x50\x0e\x7d\x1a\x18\x32\xf0\x62\xf1\x62\x06\x2f\x16\x2f\xdd\x2e\xf7\x62\xf1\x2a\x2a\x6b\x90\xa2\x53\xe2\xf4\x05\x07\xc7\x15\x34\x0a\x68\x79\x6b\x27\x3b\x6e\xbf\xdb\xad\xbd\x15\x4f\x19\xee\x1a\x4e\x9c\x0d\xdd\x9d\x8b\x99\xc8\x3b\x7e\xcb\x17\x85\xfa\x95\x0b\xc1\x16\x4a\x6f\x4e\x23\x06\x3a\xf5\xf5\x9c\x3e\x2c\x79\x8e\x1f\x6e\x5e\x2f\xbf\x68\xef\xb8\x1f\x32\x55\x94\xcc\xf2\x15\x17\xdc\xee\x3f\x2c\x5e\x7e\xab\x31\x53\x45\x81\x32\xc7\x7c\xf1\xf2\xdf\x87\x2c\x31\xa9\xe0\xc0\x6a\x8f\xae\x9d\x9b\xd7\xcb\x0f\xe7\x57\xcb\x0f\x2f\x5e\x7e\xfb\xe1\xfb\x8b\x9f\x3e\x8c\x1b\xc9\xf6\x17\x2f\xbf\xfe\x26\x7e\xf1\xea\xdb\xaf\x5a\xe4\xa2\x35\xff\x10\xad\xf9\x04\xa2\xa3\x26\x1b\xe0\x98\xe1\xbf\x07\xe9\x97\x5f\x7f\x13\x3f\x6c\xd8\xee\x90\xee\xb6\x98\x4a\xfa\x33\xee\x72\xc9\x95\xf1\xf2\x41\x5b\xd1\xe8\xba\x28\x1c\x20\x3d\xbe\x22\x7c\xbb\x89\x6b\xe1\x01\xf3\xde\x03\xe3\xee\x8c\xff\x27\x9a\xdf\x49\x75\xbe\xfa\xfc\xea\x54\x22\x19\x26\xe8\xea\x52\x89\xfc\xb7\x53\xe4\x1b\x91\x7f\x58\xb1\xec\xf6\x8e\xe9\xfc\x9f\x56\x9d\x8f\xe6\x6a\x9a\x40\xc6\x85\xf1\x20\x19\x3b\x24\x38\x48\xcf\xbf\x4a\x92\xec\x09\x2c\x21\xce\x8e\xc8\x07\x7a\x0a\xaf\xc6\xd8\x1e\x9a\x0e\x43\xba\x9c\x2c\x8f\x9e\x0c\x7a\xac\x76\x11\xf3\x14\x40\xea\x6d\xd1\x97\x9f\xdf\x16\xdd\xaf\xf2\x83\x92\x2e\xc9\x9e\x88\x9b\xf8\xad\x01\x94\x0e\x05\x9e\xd3\x28\xf5\xa2\xf6\x5a\x77\x3c\x0f\x29\x14\xe6\x0d\x4f\x1b\x4d\x37\x05\xaa\x3a\xd6\x6f\x28\xbb\xe2\x2c\x62\x53\x5f\x63\xd1\xe7\xaf\x15\xd6\x71\x9e\xd5\x54\xaa\xe6\x53\x0d\xed\xbb\x06\x0b\x7e\x98\xe0\xf5\x87\x03\x75\x75\xef\xcc\x15\xa7\xb3\x28\xad\x67\x24\x9c\x0b\xc1\xbd\x2b\x2d\xea\xe3\x49\xe1\x6e\xcc\xd0\xb9\x09\x66\x5c\x98\x26\x7a\xa7\xcc\x5d\x61\xd9\xa1\x50\x65\xb8\x53\x81\x1f\xb9\x71\x01\x97\x76\x93\xb5\xaa\xe4\x60\xcd\x86\x15\x31\xe5\xc4\x47\xfe\xe7\x25\x96\x28\x5d\x51\x22\x25\xa1\xd4\x98\x71\x83\x62\x1f\x4e\x3c\xb4\x69\xd6\x45\xa4\xd3\x51\x66\x05\x8c\x06\x9e\xa1\x09\xc1\x35\x97\x69\x8c\x15\x83\x31\xaf\xb2\x44\x65\x22\x78\x50\x2d\xbc\x74\x29\x52\x5f\xcd\xba\xd5\xac\x5b\x05\xc7\xbd\x8e\xc9\xb7\x42\x19\x57\x48\xd7\x17\x6c\x50\xab\x50\xab\x33\x34\xfa\x94\x32\xa4\xbd\x52\xdb\xa3\xa1\xda\x5e\x6b\xe7\x44\xd6\xb9\xf9\x9a\xb1\xba\x1d\x1c\x54\xfd\x6e\x75\x9c\x65\x4a\x3b\x3d\x0e\x86\xeb\xda\x95\x48\x0e\xbe\x7f\x58\xc6\x3e\x53\xd2\x67\x21\xc6\x47\x79\xd2\xb4\xeb\x26\xa1\x5b\xcf\x43\x14\x9e\xeb\xa0\x84\x64\xa9\x94\xf3\x5a\x0c\xe1\x28\xce\xd1\xf2\x07\xd4\x5d\xfd\x51\x2a\x93\xe8\xcf\x05\x90\xd8\x74\x5d\x55\x3c\x92\xac\x2b\x15\xc3\x33\xbe\xc0\xd9\x91\x72\xea\xed\x1f\xfe\x52\x31\x61\x0e\x0a\xb5\x3f\x0f\xf6\x81\xd6\x12\xfd\xaf\xce\xe0\xb4\xe5\xe0\xd7\x5d\x3c\xb6\xd9\xb7\xf7\x5b\x6c\xcd\x52\x5f\x66\x2c\x55\x5f\x3d\x54\x67\x74\xc3\xc9\x58\xe9\x8d\x34\x4f\xa5\xb8\x1d\xfa\xeb\x56\xf2\xf9\x29\x54\x5f\x71\xc8\x4d\x57\xe8\x4a\x14\x75\x6a\xc4\xb6\x15\xa7\xfb\x5c\x16\x68\x3d\x90\xf4\x65\x0c\xc7\x0a\x3e\xc6\x74\x8a\x4f\xf5\xfb\x52\x3a\x42\xb1\xc4\x39\x8d\x58\x6d\xcb\xb1\xf5\x47\x26\x8c\xe3\x8b\xc9\xbd\x5f\xaf\xca\xe0\x01\x5b\x50\x49\xc3\x2c\x37\x6b\x3e\x50\x0f\xf7\xfd\xe1\xc0\xdf\x21\xcb\xf7\x93\x87\xed\x86\x99\x22\x4a\x64\xcf\x0f\x6b\xf3\x99\x58\xd4\x66\xd1\x92\x4c\xaf\x8d\x26\x0e\x12\x4a\x7a\xe8\x98\x5d\x4f\x97\xd7\xcb\xa0\xd2\x34\xe1\xc9\x83\x4d\xe8\xb4\x9f\xb1\x48\xe8\x98\x66\x61\x5d\x0c\x2f\x44\x29\x89\xab\xb6\x28\x26\x54\x89\xea\x14\x2e\x8a\xdf\x1e\xa9\x02\xd4\xd4\x0e\x35\xc9\xe2\x96\xae\xaa\xd0\xc3\xe7\x14\xb1\xd0\xa3\x79\x79\xbd\x7c\xc0\x4c\x0a\xe3\xb9\xbc\x5e\xa6\xf2\x95\x07\x93\xa7\x55\x44\x09\xb6\x6c\x87\xb0\x42\x94\x60\xaa\x8c\xf6\xdf\x75\x25\xc4\x3e\x56\xa3\x6a\x8d\xad\x1f\xb0\x9b\x3e\xd6\xc3\x9d\x7b\x20\xce\x9b\x3c\xd4\x7b\x11\xc9\x92\xea\xdc\xc1\xba\x60\xc6\x64\xee\x8a\x3c\xd7\xaf\x43\x21\xdd\x54\x16\x6c\x24\xd0\x2f\x98\xb1\x37\x9a\x49\xc3\xe3\xdf\x1c\x49\x83\xf0\xb8\xc7\xe5\xcc\xe2\x7c\x10\x70\x1d\x09\x80\x16\x68\x0c\xdb\x0c\xf4\x70\xb4\x98\x1d\x33\x43\x1e\xc2\x91\x4f\xfb\xe8\x66\xf2\xa7\x43\x2e\xc2\x91\x0f\x8f\x26\xaa\xfb\x11\xfa\x09\x15\x8a\x9b\x25\xec\x7c\x87\xcc\x92\x93\x10\x1f\x4a\x57\x7f\x2e\xd9\xd9\xe7\x2b\xd6\x3a\x5e\xab\xb5\xc5\x55\x6d\xbd\xd2\x7c\x3d\x16\xd5\x7c\x2c\xaa\xf9\x58\x54\x33\xfe\x1e\x8b\x6a\x3e\x16\xd5\x7c\x2c\xaa\xf9\x58\x54\xf3\xb1\xa8\xe6\x63\x51\xcd\xc7\xa2\x9a\xff\x62\x45\x35\x63\x98\xf2\x7b\xff\xd7\x34\x12\x59\x90\xee\x6d\x82\x5e\xf3\x44\x58\x36\xfe\x69\x0e\xf7\xe7\xa2\xc2\x07\x23\x41\xcb\xde\x0d\xb6\xe1\xa0\xa5\x99\x72\xc3\xa8\x5d\xbe\x88\x1d\xdc\x51\x99\x91\xf1\x0c\x67\xfd\x3d\x0b\xb3\xf6\x41\xd9\x9e\x06\x5a\x73\xa8\x54\x39\xa9\x4b\xfb\xd5\xd5\x8e\xd6\xf6\x83\xcd\x6e\x56\xf8\x58\x70\x3f\x05\xbd\x6e\x6e\x98\x3b\x9a\xe1\x8e\x9b\x8b\x3b\xb6\xae\xbe\xa9\x75\x3f\xc4\x3c\xd9\xc1\xb2\xc2\x4c\x39\x6e\xdc\x34\x8b\x6a\xec\x9e\x2a\x3e\x3c\x5a\xea\x8f\x4a\xf5\x63\x11\x32\x1c\xc7\xbd\x8f\xa3\x35\x72\xc2\xef\xd3\x4e\xf7\x0d\xdf\xde\x7d\xe0\xc9\xbe\x70\x82\x2f\x49\xf2\x21\xa7\xfa\x52\xa7\xf7\x06\xb2\x9a\x9f\x72\xa4\x6f\xe4\x38\xdf\xa4\x93\x62\x03\x77\x1b\x8e\x65\x4c\x7f\xa3\xe3\x7b\xbf\xc9\xd1\xbd\x07\x1f\xdb\x4b\x1d\xcf\x4b\xf6\x30\x72\x64\xef\xb3\x24\xcf\x0e\x1e\xed\xe2\x09\x9a\xdd\x8b\xe6\x5f\x6e\x12\xcc\xc3\xdf\xef\x75\x2f\x20\xfc\x85\xbb\x56\xe2\xda\x58\xa5\xd9\x26\xa6\xb2\x9b\x98\x15\xcb\x08\x68\x63\x7e\x7d\xf8\x77\x7a\x4f\xfc\x98\xe2\x1f\xdd\x75\xff\x6c\x25\x95\xe0\x7f\xfe\xf7\x89\xa7\x8a\xf9\xcf\x91\x0f\x7a\xf8\x7f\x01\x00\x00\xff\xff\xf6\xa0\x34\x80\xba\x78\x00\x00") + +func manifests00CustomResourceDefinitionYamlBytes() ([]byte, error) { + return bindataRead( + _manifests00CustomResourceDefinitionYaml, + "manifests/00-custom-resource-definition.yaml", + ) +} + +func manifests00CustomResourceDefinitionYaml() (*asset, error) { + bytes, err := manifests00CustomResourceDefinitionYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/00-custom-resource-definition.yaml", size: 30906, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x25, 0x60, 0x44, 0xd6, 0xe7, 0x53, 0xa3, 0xd4, 0xb6, 0xc6, 0x66, 0x7b, 0xff, 0x7c, 0x10, 0xa0, 0x65, 0xd, 0x82, 0x84, 0x41, 0xd8, 0xce, 0x6f, 0xd3, 0x77, 0x44, 0xa0, 0xa0, 0xcc, 0xf4, 0xfd}} + return a, nil +} + +var _manifests00IngressCredentialsRequestYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xdc\x52\xc1\x6e\x1b\x3b\x0c\xbc\xef\x57\x10\x3e\x3e\x40\x9b\x17\x14\x05\x0a\xdd\x12\xb7\x48\x0f\x39\x04\x36\xd0\x02\xbd\xd1\xd2\x78\x23\x44\x16\xb7\x22\x37\x05\xfa\xf5\x85\xec\xed\xba\xa9\x4f\xbd\x05\xb9\xad\x38\x24\x67\x76\x38\x3c\xa6\x2f\xa8\x9a\xa4\x78\x0a\x59\xa6\x18\x2a\x22\x8a\x25\xce\xbd\x8c\x28\xfa\x98\xf6\xd6\x27\xb9\x7a\xbe\xee\x9e\x52\x89\x9e\xd6\x4b\x83\x6e\xf0\x7d\x82\x5a\x77\x80\x71\x64\x63\xdf\x11\x65\xde\x21\x6b\xfb\x22\x0a\x52\xac\x4a\xce\xa8\xce\x44\xb2\xf6\x4f\x1f\xb4\x4f\xe2\x69\x75\xdd\xff\xbf\xea\x88\x0a\x1f\xe0\x69\xe1\x71\xa9\x0c\x15\xaa\x33\xa2\x23\x87\x17\xf0\x51\xa0\x3b\x2b\x74\x32\xa2\xb2\x49\xed\x74\x44\x68\x9c\x8a\x50\x61\x1b\xec\x4f\x02\x4e\xfb\xff\x1e\xd3\x05\xbb\x60\x98\x05\x9c\x17\x13\x8d\x55\x9e\x53\x44\xdd\xce\x14\x44\xff\xe2\x59\xeb\x3f\xf9\x76\xf3\x75\xfb\xf0\xc7\xaa\x23\xa2\xc6\x86\x03\x8a\x7d\x2a\x56\x13\x66\xdb\x1c\x61\xbf\x47\x30\x4f\x37\x39\xcb\x8f\x63\x8d\x88\x83\x35\xc6\xf9\xe5\x08\x99\xd5\x52\xc8\xc2\x71\xc7\x99\x4b\x48\x65\xf0\x1f\xa1\xa1\xa6\x1d\xee\x85\xe3\xed\xb1\x8a\xaa\xcb\x48\x95\xc9\xf0\xfe\x9d\xbf\x4f\x6a\x9f\x45\x0d\xf1\x9b\x14\x5c\xe2\xeb\x47\x2e\x03\x36\x50\x99\x6a\xc0\x06\x41\x6a\xdc\xc2\xce\x8d\xc6\x83\xbf\x6b\x3e\x9f\x3a\x7e\x03\x75\x7e\x7b\x5a\xfd\xb7\xea\x9c\x73\xdd\xab\x8c\x97\xe3\x9f\x53\xc5\xdb\x0c\x59\xfb\xb3\x8b\x98\x55\xc9\xb8\x4d\x25\xa6\x32\x2c\x11\x6b\x35\x4f\xeb\x66\x61\xda\x4d\x4d\xc5\xeb\xbd\xd7\x10\xc6\x37\x79\xad\xbb\xf5\xc3\xc5\xad\xc6\x36\xb8\x4f\x05\x71\x23\x19\x2f\xce\xa5\x57\xb1\x68\xcf\xf1\x90\x4a\xf7\x2b\x00\x00\xff\xff\x8f\x64\x7a\x7c\xb8\x05\x00\x00") + +func manifests00IngressCredentialsRequestYamlBytes() ([]byte, error) { + return bindataRead( + _manifests00IngressCredentialsRequestYaml, + "manifests/00-ingress-credentials-request.yaml", + ) +} + +func manifests00IngressCredentialsRequestYaml() (*asset, error) { + bytes, err := manifests00IngressCredentialsRequestYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/00-ingress-credentials-request.yaml", size: 1464, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc8, 0x2c, 0xb5, 0xfb, 0x97, 0x77, 0x7d, 0xd7, 0x6d, 0x81, 0x2f, 0x39, 0x37, 0xcd, 0x2b, 0x82, 0x89, 0xac, 0x43, 0x14, 0x12, 0x84, 0x8, 0xf9, 0x32, 0x7f, 0xa9, 0x86, 0xe7, 0x98, 0x8d, 0x15}} + return a, nil +} + +var _manifests00NamespaceYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x44\xca\x31\x0a\x02\x41\x0c\x05\xd0\x7e\x4e\x11\xb6\x5f\xc5\x76\x0e\x61\x69\xff\xd9\xf9\x6a\xd0\x49\x86\x24\x78\x7e\xb1\xb2\x7c\xf0\x5e\x6a\xa3\xcb\x15\x93\xb9\x70\xb0\x61\xe9\x8d\x91\xea\xd6\xe5\x73\x69\x93\x85\x81\x42\x6f\x22\x30\xf3\x42\xa9\x5b\xfe\x28\xe2\x8b\x96\x4f\xbd\xd7\x49\xfd\x6c\x3e\xb8\x27\xdf\x3c\xca\xa3\xcb\xb6\x35\x11\xc3\x64\xff\xb7\x5d\xed\x11\xcc\xdc\x7d\x31\x50\x1e\xed\x1b\x00\x00\xff\xff\x24\x2e\xb5\xfe\x7e\x00\x00\x00") + +func manifests00NamespaceYamlBytes() ([]byte, error) { + return bindataRead( + _manifests00NamespaceYaml, + "manifests/00-namespace.yaml", + ) +} + +func manifests00NamespaceYaml() (*asset, error) { + bytes, err := manifests00NamespaceYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/00-namespace.yaml", size: 126, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe6, 0x64, 0x83, 0xa1, 0xe0, 0x1a, 0x81, 0x67, 0x21, 0xaa, 0xe0, 0x58, 0x7a, 0x66, 0xc1, 0x35, 0xb6, 0x60, 0x1f, 0xeb, 0xb8, 0x57, 0xea, 0xfd, 0x63, 0x9, 0x25, 0x83, 0xb5, 0xc3, 0x8e, 0xf6}} + return a, nil +} + +var _manifests01ClusterRoleBindingYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x8c\x8f\x31\x4f\x03\x31\x0c\x85\xf7\xfc\x0a\x4b\xcc\x17\xc4\x86\xb2\x01\x03\x7b\x91\xd8\xdd\x9c\xdb\x33\xbd\xda\x91\xed\x74\xe0\xd7\xa3\xe8\x0a\x4b\xa5\x8a\xd9\x7e\xef\x7d\xdf\x03\xbc\xb2\xcc\x0e\xb1\x10\x68\x23\xc3\x50\x83\xba\x76\x0f\x32\x30\x5d\x09\x42\x81\xc3\xe1\x83\xec\xc2\x95\xe0\xa5\x56\xed\x12\x39\x9d\x58\xe6\x02\x6f\xdb\xeb\x4e\x57\x1a\x45\x2c\xc7\x84\x8d\x3f\xc9\x9c\x55\x0a\xd8\x1e\x6b\xc6\x1e\x8b\x1a\x7f\x63\xb0\x4a\x3e\x3d\x7b\x66\x7d\xbc\x3c\xa5\x33\x05\xce\x18\x58\x12\x80\xe0\x99\xca\x20\x10\x5f\xf8\x10\x13\xcb\xd1\xc8\x7d\xfa\x65\x4a\xde\xf7\x5f\x54\xc3\x4b\x9a\x60\x9b\xbe\x12\x5d\x81\xfe\x3a\x6e\x92\xdb\xc1\x1b\xd6\xfb\x0b\xc3\x76\x47\x87\x41\x73\xe3\x96\x00\xb0\xf1\xbb\x69\x6f\x77\xa4\xfe\xe3\xf1\x13\x00\x00\xff\xff\x5e\x3a\x23\xb1\x71\x01\x00\x00") + +func manifests01ClusterRoleBindingYamlBytes() ([]byte, error) { + return bindataRead( + _manifests01ClusterRoleBindingYaml, + "manifests/01-cluster-role-binding.yaml", + ) +} + +func manifests01ClusterRoleBindingYaml() (*asset, error) { + bytes, err := manifests01ClusterRoleBindingYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/01-cluster-role-binding.yaml", size: 369, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xda, 0x8e, 0x10, 0x4b, 0xec, 0x40, 0x80, 0x5c, 0x10, 0x83, 0xa9, 0x57, 0x2, 0x49, 0x9d, 0x4e, 0x4d, 0x6a, 0xec, 0xaf, 0x5d, 0x81, 0xa3, 0x2f, 0x1e, 0xd3, 0x8b, 0x69, 0xa0, 0x39, 0x50, 0xdf}} + return a, nil +} + +var _manifests01RoleBindingYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xa4\xd0\x31\x4f\xc3\x40\x0c\x05\xe0\xfd\x7e\xc5\x93\x98\x13\xc4\x86\x6e\x83\x85\xbd\x48\xec\xee\xc5\x6d\x4c\x5b\xfb\x64\x3b\x1d\xf8\xf5\x28\x22\x88\x01\xc1\xd2\xd9\xb6\xde\xf7\x7c\x87\x67\xd1\x29\x90\x33\xc3\x3a\x3b\xa5\x39\xdc\xce\x8c\x34\x48\x06\x5e\xd9\xaf\xd2\x18\x4f\xad\xd9\xa2\x39\x96\x93\xe8\x54\xb1\xb3\x33\xaf\x97\xa2\xc7\x42\x5d\xde\xd8\x43\x4c\x2b\x7c\x4f\x6d\xa4\x25\x67\x73\xf9\xa0\x14\xd3\xf1\xf4\x18\xa3\xd8\xfd\xf5\xa1\x5c\x38\x69\xa2\xa4\x5a\x00\xa5\x0b\x57\x88\x1e\x9d\x23\x86\xef\xe8\x6d\x10\x9d\x1a\xd7\x15\xa4\x31\xcb\x21\x87\x5f\x7b\xb1\xec\xdf\xb9\x65\xd4\x32\xe0\x4b\xb4\x41\x37\xe7\xed\x09\xeb\x13\x76\x7c\x58\xad\x3f\x95\x0b\x40\x5d\x5e\xdc\x96\xfe\x4f\xd7\xbf\xc3\x3f\x03\x00\x00\xff\xff\x1f\x8f\x27\xc8\x6f\x01\x00\x00") + +func manifests01RoleBindingYamlBytes() ([]byte, error) { + return bindataRead( + _manifests01RoleBindingYaml, + "manifests/01-role-binding.yaml", + ) +} + +func manifests01RoleBindingYaml() (*asset, error) { + bytes, err := manifests01RoleBindingYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/01-role-binding.yaml", size: 367, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xce, 0x6b, 0xe2, 0x98, 0x77, 0x85, 0x4, 0x5f, 0x81, 0xee, 0xa8, 0x60, 0xbe, 0x8a, 0xf3, 0x3, 0xad, 0xd8, 0x7, 0x27, 0x33, 0x11, 0xe8, 0x28, 0x66, 0xe4, 0xd9, 0x9, 0x76, 0xee, 0x60, 0xb5}} + return a, nil +} + +var _manifests01RoleYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x84\x90\x31\x6e\xc3\x30\x0c\x45\x77\x9d\x82\x70\xb7\x02\x56\xd1\xad\xd0\x05\xba\x77\xe8\xce\xc8\x74\x42\x44\x12\x05\x52\x36\xd0\x9e\xbe\x88\x63\x1b\x41\x3c\x74\x13\xc5\xf7\x9f\x3e\xf4\x02\x5f\x92\x08\x46\x51\x68\x17\x02\xa9\xa4\xd8\x44\x81\x9b\x51\x1a\xbd\xbb\x72\x19\xc2\xc2\x38\xac\xfc\x4d\x6a\x2c\x25\x80\x9e\x30\x7a\x9c\xda\x45\x94\x7f\xb1\xb1\x14\x7f\xfd\x30\xcf\xf2\x36\xbf\xbb\x4c\x0d\x07\x6c\x18\x1c\x40\xc1\x4c\x01\xb8\x9c\x95\xcc\xfa\x4d\xbf\x2e\xac\x62\xa4\x70\x7b\xb4\xd8\x85\xc7\xd6\x1f\x38\x9d\x12\x59\x70\x3d\x60\xe5\x4f\x95\xa9\xda\x4d\xda\xef\x3d\xfd\x9e\xf5\x2c\x0e\x40\xc9\x64\xd2\x48\x2b\xd6\xbd\x76\x0e\x60\x26\x3d\x3d\x5c\x1c\x6d\x5d\x77\x8c\x56\x19\x6c\x39\x18\xe9\xcc\x91\xee\x03\x95\xa1\x0a\x97\x76\x9f\xea\xed\x3b\xac\x51\x69\xb3\xa4\x29\x53\x4c\xc8\x79\x05\x67\xda\xa8\x28\x65\xe4\x73\xc6\xba\xf9\xa2\xd2\xb2\xfa\xb7\x17\xd6\x25\xf3\xd4\x6c\xa0\x9a\xe4\x27\xef\xfe\x87\x82\x4f\xc6\xbf\x00\x00\x00\xff\xff\x4f\x96\x11\xa4\xdd\x01\x00\x00") + +func manifests01RoleYamlBytes() ([]byte, error) { + return bindataRead( + _manifests01RoleYaml, + "manifests/01-role.yaml", + ) +} + +func manifests01RoleYaml() (*asset, error) { + bytes, err := manifests01RoleYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/01-role.yaml", size: 477, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x4d, 0xf1, 0xe, 0xa2, 0x89, 0xa6, 0xa5, 0x86, 0x8d, 0x2d, 0x22, 0x6e, 0x62, 0x6c, 0x7c, 0x58, 0xca, 0x7b, 0x96, 0x5f, 0xa7, 0xbd, 0x5f, 0xcb, 0x2d, 0x53, 0xeb, 0x25, 0xd3, 0x62, 0x2c, 0xf8}} + return a, nil +} + +var _manifests01ServiceAccountYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x64\x8e\xb1\x6e\x84\x30\x10\x44\x7b\x7f\xc5\x48\xd4\x20\xa5\x75\x97\x32\x75\xa4\xf4\x96\x3d\x84\xd5\x81\xed\xdb\x5d\xf8\xfe\x13\x88\xab\xae\x9e\xa7\x37\x6f\xc0\x77\xce\x6d\xaf\x8e\xb9\x29\x7c\x21\x5a\xa7\x26\x6f\x0a\x71\xe3\x3a\x4f\xf8\x71\xd8\xd2\xf6\xb5\x40\xf9\xdc\x45\x89\x9a\x36\x5a\x4f\x99\xb0\xdc\x3a\x4b\x18\xd0\xa9\x9b\x98\x49\xab\x36\x85\x87\xd4\x12\xf1\x4b\x3d\x24\xf3\xf6\x87\xd4\xe5\x8f\x7a\x12\x11\xc7\x57\xd8\xe8\xa9\x24\x4f\x31\xe0\xf2\x45\x48\xfd\x57\x9a\x8d\xef\x80\x7b\xb8\x8e\xe2\x99\x55\x6d\x91\xd9\xc7\x0f\xee\x15\x00\x00\xff\xff\xe5\x09\x18\x74\xc4\x00\x00\x00") + +func manifests01ServiceAccountYamlBytes() ([]byte, error) { + return bindataRead( + _manifests01ServiceAccountYaml, + "manifests/01-service-account.yaml", + ) +} + +func manifests01ServiceAccountYaml() (*asset, error) { + bytes, err := manifests01ServiceAccountYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/01-service-account.yaml", size: 196, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2c, 0xae, 0x8d, 0xe1, 0x55, 0xc4, 0xdf, 0x60, 0x69, 0xa, 0xef, 0xf1, 0x8c, 0x61, 0xea, 0x45, 0xf4, 0xa, 0xcb, 0x9d, 0xc7, 0xc3, 0xb4, 0x10, 0x8a, 0xb6, 0xf3, 0x21, 0xe6, 0x97, 0xc0, 0x28}} + return a, nil +} + +var _manifests02DeploymentYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xb4\x54\x4f\x6f\xea\x48\x0c\xbf\xf3\x29\xac\xdc\x43\x61\xb5\xa7\xb9\xa1\x6e\xba\x5b\xa9\xa5\x08\xaa\xee\xb1\x32\x13\x03\x23\x26\xe3\xac\xed\x20\xf2\xed\x57\x69\x29\x04\xca\xe3\xbd\xcb\xcb\x71\x7e\x7f\xfc\x73\xc6\x63\xac\xc3\x1b\x89\x06\x4e\x0e\xb0\xae\xf5\x6e\x37\x1e\x6c\x43\x2a\x1d\xfc\x45\x75\xe4\xb6\xa2\x64\x83\x8a\x0c\x4b\x34\x74\x03\x80\x84\x15\x39\x08\x69\x2d\xa4\x9a\x73\x4d\x82\xc6\x72\x00\xb4\x46\x4f\x0e\xb8\xa6\xa4\x9b\xb0\xb2\xfc\x1b\x4f\x6b\xf2\x9d\x8d\x50\x1d\x83\x47\x75\x30\x1e\x00\xa8\x09\x1a\xad\xdb\x0e\x01\xb0\xb6\x26\x07\x73\xf2\x42\x68\xd4\xc1\x14\xc9\x1b\xcb\x27\x5c\xa1\xf9\xcd\x13\x2e\x29\xea\xe7\xc1\x8d\x50\x46\x55\x1d\xd1\xe8\xa0\xec\xf5\xd1\x7d\xf1\xcc\xe4\x86\x0d\xc0\x57\xee\x0f\x1a\x97\xb4\x38\x8b\xd4\x7d\xdb\x66\x49\x92\xc8\x48\x87\x81\xef\x58\x1d\xc4\x90\x9a\xfd\xc9\x9c\x4b\xca\x85\x23\x0d\xcf\x99\x15\xaa\x91\x38\xc8\xb2\x03\xd5\x38\x76\x85\x03\xa7\x63\xb4\x1c\xb6\xd4\x3a\xc8\x6e\x7b\x64\xc7\x5a\x5f\xd1\x1d\x64\xc5\x3e\xa8\xe9\x09\xa2\xd5\x8a\xbc\x39\xc8\xa6\xbc\xf0\x1b\x2a\x9b\x48\xd9\x95\x2a\x17\x05\x9a\x24\x84\x7e\x83\xcb\x13\xfb\x57\xab\x14\x7b\xf2\x8d\xf5\x64\xa7\xfe\x16\xe4\x39\x95\xdd\x0c\xfc\x31\xfa\x79\x86\xc4\x96\x0b\x61\xd9\xfe\xde\x04\x4a\xb2\x0b\x9e\x26\xde\x73\x93\x6c\xfa\xe3\x91\x00\xa8\x25\xb0\x04\x6b\xef\x23\xaa\x7e\x32\xb5\x55\xa3\x2a\xf7\xb1\xe9\x6e\x24\xf7\x12\x2c\x78\x8c\x07\x81\xe7\x64\x18\x12\x49\x6f\xe8\xf2\x5b\x63\x77\xc8\x4b\x52\x85\xf4\x11\xf8\x99\x54\x71\x4d\x33\x8e\xc1\xb7\x0e\x1e\x30\xc6\x25\xfa\xed\x2b\x3f\xf1\x5a\x5f\x52\x21\x72\xa6\x0c\x55\x47\x6e\x62\xfc\x12\x3c\xae\xa6\x6c\x33\x21\xed\xde\xf5\x05\xaf\xf7\x70\xef\x58\xc2\x3a\xa4\x63\x1f\x97\xe1\x5c\xf7\xa8\xb4\xef\xe0\xb9\xaa\x30\x95\xae\x77\x94\xdf\xea\x29\x07\x35\x94\xbe\x03\xa5\x5d\x5f\x7d\xfa\x33\xf3\xe2\xa9\x98\x2c\x8a\xf7\xb7\x62\xbe\x78\x7c\x99\x9e\x71\x00\x76\x18\x1b\x72\x90\x8d\x86\xa3\xe1\x38\xd7\x84\xb5\x6e\xd8\xb2\xab\x4e\xff\x4e\x5e\xef\xff\x79\x9f\x4e\x9e\x8b\xc5\x6c\x72\x5f\x5c\x73\x7a\x10\xae\xdc\x05\x00\xb0\x0a\x14\xcb\x39\xad\xbe\x23\x07\x6c\x86\xb6\x71\xc7\x05\x33\x3c\x2e\xc3\xab\x31\x1e\x9f\x27\x7f\x5f\x2d\x7e\xe5\x06\x36\x58\x0b\xef\xdb\x5c\xb8\xe9\xd6\xc4\xee\xcf\xe1\xa8\xa7\x14\x52\x6e\xc4\x93\x9e\x07\x13\xfa\xaf\x21\x35\xbd\x8c\xeb\xeb\xc6\xc1\x78\x54\x0d\xfe\x0f\x00\x00\xff\xff\x0e\x3a\x57\xb2\xf7\x05\x00\x00") + +func manifests02DeploymentYamlBytes() ([]byte, error) { + return bindataRead( + _manifests02DeploymentYaml, + "manifests/02-deployment.yaml", + ) +} + +func manifests02DeploymentYaml() (*asset, error) { + bytes, err := manifests02DeploymentYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/02-deployment.yaml", size: 1527, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x85, 0x64, 0x5d, 0xe9, 0x9c, 0x4, 0x18, 0xe5, 0xf4, 0x94, 0x25, 0x9e, 0x5f, 0x8a, 0x0, 0x9, 0x18, 0xa0, 0x1e, 0xcf, 0x61, 0x57, 0x16, 0xac, 0xfa, 0x9c, 0xf3, 0x80, 0x75, 0xf3, 0x63, 0xf0}} + return a, nil +} + +var _manifests03ClusterOperatorYaml = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x5c\x8e\x31\x6f\xc2\x40\x0c\x85\xf7\xfb\x15\x4f\xb0\x96\x14\xd6\xac\x4c\x9d\x58\x2a\x76\xf7\x62\x38\xab\x89\x1d\x9d\x7d\x20\xfe\x7d\x45\x00\xb5\xea\x4d\x4f\x67\xfb\x7d\xdf\x1a\x9f\x45\x1c\x95\xdd\x5a\xcd\x0c\x71\xa8\x05\x72\x65\x0a\x1e\xf0\x75\xc3\xfe\x78\x78\x83\xc4\x7d\x62\x3a\xde\xd0\x9c\x07\x90\x83\x90\x6d\x9a\x9a\x4a\xa6\x10\xd3\xb4\xc6\xc4\xb9\x90\x8a\x4f\x08\x43\xf0\x38\x22\x0a\xdf\xef\x71\x2d\x92\x0b\xf6\x63\xf3\xe0\x7a\x98\xb9\x52\x58\xfd\x85\x86\xe1\x4a\x12\x38\x59\xed\xd2\x1a\x1f\x7a\xae\xec\xbe\x37\x8d\x6a\xe3\xc8\xf5\xa9\xe3\x20\x1d\xd0\xe6\x61\xc9\xf1\xd7\xbb\x4b\x34\xcb\x91\xab\x8b\x69\x8f\x6c\x7a\x92\x73\x67\x33\xab\x17\x39\x45\x27\xf6\x7e\xd9\xa5\x6f\xd1\xa1\xff\x6f\x91\x26\x0e\x1a\x28\xa8\x4f\x80\xd2\xc4\x3d\xe4\xc1\x4f\x1e\x14\xcd\xef\xff\x97\x47\xf3\x92\x81\xcd\x73\xcf\x5e\x15\x58\xde\xe5\x85\x5f\x6d\xbb\x6d\xb7\xdb\xb8\xd2\xec\xc5\x62\x95\x7e\x02\x00\x00\xff\xff\xb3\xe2\x1b\x07\x65\x01\x00\x00") + +func manifests03ClusterOperatorYamlBytes() ([]byte, error) { + return bindataRead( + _manifests03ClusterOperatorYaml, + "manifests/03-cluster-operator.yaml", + ) +} + +func manifests03ClusterOperatorYaml() (*asset, error) { + bytes, err := manifests03ClusterOperatorYamlBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/03-cluster-operator.yaml", size: 357, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9b, 0x55, 0x62, 0x66, 0x26, 0xb0, 0xbd, 0x39, 0xb8, 0x3f, 0x33, 0x66, 0x5d, 0x9f, 0x49, 0x8a, 0xa2, 0xac, 0x2a, 0x5c, 0x3e, 0x18, 0x29, 0x74, 0xbc, 0x0, 0x97, 0xc9, 0xe2, 0x1b, 0x83, 0x26}} + return a, nil +} + +var _manifestsImageReferences = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x9c\xce\x31\x4e\xc5\x30\x0c\x80\xe1\x3d\xa7\xb0\xb2\xa7\x0f\x24\xa6\xcc\x2c\xcc\x48\xec\x56\xf1\x4b\xad\x36\x71\x64\xbb\x15\xdc\x1e\xb5\x45\xa8\x0c\x2c\x4c\x89\x6c\xe9\xff\x3c\x73\x7b\xcf\xf0\x52\xb1\xd0\xab\x2b\x61\x0d\xd8\xf9\x8d\xd4\x58\x5a\x06\xde\xe7\x83\x74\x6a\x36\xf1\xdd\x07\x96\xdb\xf6\x18\xac\xd3\x98\x03\x80\x63\xb1\xfd\x4d\xd0\xb0\x52\x86\x71\x59\xcd\x49\x13\xb7\xa2\x64\x96\xa4\x93\xa2\x8b\x06\x00\x80\xbb\x4a\xcd\x70\x7c\x01\x4e\x35\x3e\xcb\x38\x93\x1e\x78\xfc\xde\x9c\xa5\xf8\x43\xde\x44\xb9\x70\x4b\x7f\xb5\xf3\x82\x4e\xe6\xf1\x72\xc6\x84\x5d\xe5\xe3\x33\xa9\xac\x4e\x17\xfc\xdf\xf6\xef\x60\xde\x9e\x86\x87\x18\xbe\x02\x00\x00\xff\xff\x7b\x4a\x8b\x19\x39\x01\x00\x00") + +func manifestsImageReferencesBytes() ([]byte, error) { + return bindataRead( + _manifestsImageReferences, + "manifests/image-references", + ) +} + +func manifestsImageReferences() (*asset, error) { + bytes, err := manifestsImageReferencesBytes() + if err != nil { + return nil, err + } + + info := bindataFileInfo{name: "manifests/image-references", size: 313, mode: os.FileMode(420), modTime: time.Unix(1, 0)} + a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe6, 0xa0, 0x49, 0x8, 0x56, 0xa3, 0x55, 0xd, 0x5d, 0xf6, 0x4d, 0xa5, 0x59, 0x7d, 0x67, 0xf8, 0xab, 0x39, 0xbf, 0x6b, 0x78, 0xcc, 0xae, 0x8c, 0xda, 0xaf, 0x5b, 0x3a, 0xd4, 0xa1, 0x48, 0xfe}} + return a, nil +} + // Asset loads and returns the asset for the given name. // It returns an error if the asset could not be found or // could not be loaded. @@ -411,6 +663,30 @@ var _bindata = map[string]func() (*asset, error){ "assets/router/service-cloud.yaml": assetsRouterServiceCloudYaml, "assets/router/service-internal.yaml": assetsRouterServiceInternalYaml, + + "manifests/00-cluster-role.yaml": manifests00ClusterRoleYaml, + + "manifests/00-custom-resource-definition-internal.yaml": manifests00CustomResourceDefinitionInternalYaml, + + "manifests/00-custom-resource-definition.yaml": manifests00CustomResourceDefinitionYaml, + + "manifests/00-ingress-credentials-request.yaml": manifests00IngressCredentialsRequestYaml, + + "manifests/00-namespace.yaml": manifests00NamespaceYaml, + + "manifests/01-cluster-role-binding.yaml": manifests01ClusterRoleBindingYaml, + + "manifests/01-role-binding.yaml": manifests01RoleBindingYaml, + + "manifests/01-role.yaml": manifests01RoleYaml, + + "manifests/01-service-account.yaml": manifests01ServiceAccountYaml, + + "manifests/02-deployment.yaml": manifests02DeploymentYaml, + + "manifests/03-cluster-operator.yaml": manifests03ClusterOperatorYaml, + + "manifests/image-references": manifestsImageReferences, } // AssetDir returns the file names below a certain @@ -471,6 +747,20 @@ var _bintree = &bintree{nil, map[string]*bintree{ "service-internal.yaml": {assetsRouterServiceInternalYaml, map[string]*bintree{}}, }}, }}, + "manifests": {nil, map[string]*bintree{ + "00-cluster-role.yaml": {manifests00ClusterRoleYaml, map[string]*bintree{}}, + "00-custom-resource-definition-internal.yaml": {manifests00CustomResourceDefinitionInternalYaml, map[string]*bintree{}}, + "00-custom-resource-definition.yaml": {manifests00CustomResourceDefinitionYaml, map[string]*bintree{}}, + "00-ingress-credentials-request.yaml": {manifests00IngressCredentialsRequestYaml, map[string]*bintree{}}, + "00-namespace.yaml": {manifests00NamespaceYaml, map[string]*bintree{}}, + "01-cluster-role-binding.yaml": {manifests01ClusterRoleBindingYaml, map[string]*bintree{}}, + "01-role-binding.yaml": {manifests01RoleBindingYaml, map[string]*bintree{}}, + "01-role.yaml": {manifests01RoleYaml, map[string]*bintree{}}, + "01-service-account.yaml": {manifests01ServiceAccountYaml, map[string]*bintree{}}, + "02-deployment.yaml": {manifests02DeploymentYaml, map[string]*bintree{}}, + "03-cluster-operator.yaml": {manifests03ClusterOperatorYaml, map[string]*bintree{}}, + "image-references": {manifestsImageReferences, map[string]*bintree{}}, + }}, }} // RestoreAsset restores an asset under the given directory. diff --git a/pkg/manifests/manifests.go b/pkg/manifests/manifests.go index e12d3a8e8f..c40df41246 100644 --- a/pkg/manifests/manifests.go +++ b/pkg/manifests/manifests.go @@ -60,6 +60,9 @@ const ( // DefaultIngressControllerName is the name of the default IngressController // instance. DefaultIngressControllerName = "default" + + NamespaceManifest = "manifests/00-namespace.yaml" + CustomResourceDefinitionManifest = "manifests/00-custom-resource-definition.yaml" ) func MustAssetReader(asset string) io.Reader {