Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Logs onboarding] Getting elastic-agent version from fleet #166920

5 changes: 4 additions & 1 deletion x-pack/plugins/observability_onboarding/server/plugin.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,10 @@ export class ObservabilityOnboardingPlugin
}

public setup(
core: CoreSetup<ObservabilityOnboardingPluginStartDependencies>,
core: CoreSetup<
ObservabilityOnboardingPluginStartDependencies,
ObservabilityOnboardingPluginStart
>,
plugins: ObservabilityOnboardingPluginSetupDependencies
) {
this.logger.debug('observability_onboarding: Setup');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,22 @@ const installShipperSetupRoute = createObservabilityOnboardingServerRoute({
scriptDownloadUrl: string;
elasticAgentVersion: string;
}> {
const { core, plugins } = resources;
const { core, plugins, kibanaVersion } = resources;
const coreStart = await core.start();

const fleetPluginStart = await plugins.fleet.start();
const agentClient = fleetPluginStart.agentService.asInternalUser;

// If undefined, we will follow fleet's strategy to select latest available version:
// for serverless we will use the latest published version, for statefull we will use
// current Kibana version
const includeCurrentVersion = kibanaVersion.endsWith('-SNAPSHOT')
? false
: undefined;

const elasticAgentVersion =
await agentClient.getLatestAgentAvailableVersion(includeCurrentVersion);

yngrdyn marked this conversation as resolved.
Show resolved Hide resolved
const kibanaUrl =
core.setup.http.basePath.publicBaseUrl ?? // priority given to server.publicBaseUrl
plugins.cloud?.setup?.kibanaUrl ?? // then cloud id
Expand All @@ -53,7 +66,7 @@ const installShipperSetupRoute = createObservabilityOnboardingServerRoute({
return {
apiEndpoint,
scriptDownloadUrl,
elasticAgentVersion: '8.9.1',
elasticAgentVersion,
};
},
});
Expand Down
6 changes: 6 additions & 0 deletions x-pack/plugins/observability_onboarding/server/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ import {
PluginSetup as DataPluginSetup,
PluginStart as DataPluginStart,
} from '@kbn/data-plugin/server';
import {
FleetSetupContract,
FleetStartContract,
} from '@kbn/fleet-plugin/server';
import { ObservabilityPluginSetup } from '@kbn/observability-plugin/server';
import { UsageCollectionSetup } from '@kbn/usage-collection-plugin/server';

Expand All @@ -19,13 +23,15 @@ export interface ObservabilityOnboardingPluginSetupDependencies {
observability: ObservabilityPluginSetup;
cloud: CloudSetup;
usageCollection: UsageCollectionSetup;
fleet: FleetSetupContract;
}

export interface ObservabilityOnboardingPluginStartDependencies {
data: DataPluginStart;
observability: undefined;
cloud: CloudStart;
usageCollection: undefined;
fleet: FleetStartContract;
}

// eslint-disable-next-line @typescript-eslint/no-empty-interface
Expand Down
3 changes: 2 additions & 1 deletion x-pack/plugins/observability_onboarding/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,8 @@
"@kbn/use-tracked-promise",
"@kbn/custom-integrations",
"@kbn/share-plugin",
"@kbn/deeplinks-observability"
"@kbn/deeplinks-observability",
"@kbn/fleet-plugin",
],
"exclude": [
"target/**/*",
Expand Down