Operator Lifecycle Manager Integration Bundle
The Neon.Operator
package uses assembly attributes to configure the OLM
bundle. The following is the minimum required list of assembly attributes to
create an OLM bundle. The bundle will be created in the
bin/OperatorLifecycleManager
directory, but can be overridden using the
NeonOperatorOlmOutputDir
MSBuild property.
NameAttribute
- Sets the name of the operator.DisplayNameAttribute
- Sets the display name of the operator.VersionAttribute
- Sets the version of the operator. This can also be set using theNeonOperatorVersion
MSBuild property.DescriptionAttribute
- Sets the description of the operator.KeywordAttribute
- Keywords for the operator.CategoryAttribute
- Sets the category of the operator. These are flags and can be combined.CapabilitiesAttribute
- Sets the capabilities of the operator. These are flags and can be combined.ContainerImageAttribute
- Sets the container image of the operator.InstallModeAttribute
- Sets the install modes of the operator. These are flags and can be combined.ProviderAttribute
- Sets the provider of the operator.MaintainerAttribute
- Sets the maintainer of the operator. This can be repeated to add multiple maintainers.IconAttribute
- Sets the icon of the operator. This can be repeated to add multiple icons.DefaultChannelAttribute
- Sets the default channel of the operator.LinkAttribute
- Sets the link of the operator.
Here is an example of how to use these attributes:
using Neon.Operator.Attributes;
using Neon.Operator.OperatorLifecycleManager;
[assembly: Name("my-operator")]
[assembly: DisplayName("My Operator")]
[assembly: Version("1.2.3")]
[assembly: Description(
ShortDescription = "short description",
FullDescription = "This is the full description.")]
[assembly: Keyword("my", "example", "operator")]
[assembly: Category(
Category = Category.DeveloperTools | Category.ApplicationRuntime)]
[assembly: Capabilities(
Capability = CapabilityLevel.DeepInsights)]
[assembly: ContainerImage(
Repository = "github.com/test-operator/cluster-operator",
Tag ="1.2.3")]
[assembly: InstallMode(
Type = InstallModeType.OwnNamespace | InstallModeType.MultiNamespace,
Supported = true)]
[assembly: Provider(Name = "Example")]
[assembly: Maintainer(
Name = "Some Corp",
Email = "foo@bar.com")]
[assembly: Icon(
Path = "icon.png",
MediaType = "image/png")]
[assembly: DefaultChannel("stable")]
[assembly: Link(Name = "GitHub", Url = "https://github.com/foo/bar")]