F5Networks / f5-appsvcs-extension

F5 BIG-IP Application Services 3 Extension
Apache License 2.0
165 stars 53 forks source link

Author PingAccess Profiles via AS3 schema #862

Open megamattzilla opened 1 month ago

megamattzilla commented 1 month ago

Add AS3 schema to author PingAccess Profiles

Describe the solution you'd like

Add AS3 schema to create a PingAccess Profile.

It has a small number of inputs:

2024-07-26_11-02-28

Properties file is a relatively small text file which contents look something like this:

agent.engine.configuration.scheme=http
agent.engine.configuration.host=1.1.1.1
agent.engine.configuration.port=9009
agent.engine.configuration.username=F5TestAgent
agent.ssl.protocols=TLSv1.1, TLSv1.2
agent.ssl.ciphers=TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,TLS_EMPTY_RENEGOTIATION_INFO_SCSV
agent.engine.configuration.shared.secret=secret-here
agent.engine.configuration.bootstrap.truststore=some-base64-content-here 
agent.engine.configuration.maxConnections=10
agent.engine.configuration.timeout=30000
agent.engine.configuration.connectTimeout=30000
agent.cache.missInitialTimeout=5
agent.cache.broker.publisherPort=3031
agent.cache.broker.subscriberPort=3032
agent.cache.maxTokens=0
agent.engine.configuration.failover.hosts=
agent.engine.configuration.failover.failedRetryTimeout=60000
agent.engine.configuration.failover.maxRetries=2

The pool and SSL profile elements already have AS3 schema to create them.

megamattzilla commented 1 month ago

I opened #860 to add the ability for a service_http(s) object to reference a pingaccess profile already created in /Common using a Big-IP pointer.

This request is to be able to author the pingaccess profile in AS3 schema AND reference it from service_http(s) class with the normal use pointer.

mdditt2000 commented 1 month ago

Created AUTOTOOL-4464. Added to sprint 43-1 scheduled for end of September

ghalevy commented 1 month ago

@mdditt2000 Thanks! Possible to get a resolution sooner? We require this functionality for a critical onboarding. As we are committed to AS3 several years now, lack of AS3 support for pingaccess profiles means we cannot integrate with our platform.

mdditt2000 commented 1 month ago

Can i switch out https://github.com/F5Networks/f5-appsvcs-extension/issues/732 and pickup https://github.com/F5Networks/f5-appsvcs-extension/issues/862. Please advise ASAP as the work on 732 is planned for this week.

megamattzilla commented 1 month ago

If we could switch out #732 with #860 would be awesome! Getting #860 fixed (instead of this issue) would un-block us.

mdditt2000 commented 1 month ago

@megamattzilla done! Will provide a update tomorrow after this evening standup. I will push to possibly get a image this week or early next week for customer.

mdditt2000 commented 1 month ago

@megamattzilla @ghalevy PR will be merged tomorrow. Build will be be available on Monday for Matt

sunitharonan commented 3 weeks ago

This has been resolved in AS3 3.53.0 version , please reach out to myself or Mark for a fix, thank you.

megamattzilla commented 3 weeks ago

Is the AS3 3.53.0 version available publicly?

Can we keep this issue open until the AS3 release is available?

mdditt2000 commented 3 weeks ago

Reopening AFAIK we havent added schema to author a ping profile in AS3 for #862.

mdditt2000 commented 2 weeks ago

@ghalevy @megamattzilla please can you provide some guidance

What methods works best?

Base64 encoded:

"Sample_Ping_Access_Properties": {
    "class": "Access_Profile_Ping_Access_Properties",
    "properties": {         "base64": "i4dmi4"     } 
}

File Path reference:

"Sample_Ping_Access_Properties": {
    "class": "Access_Profile_Ping_Access_Properties",
    "properties": {         "file": "/var/config/rest/downloads/properties.json"     } 
}

Uri:

"Sample_Ping_Access_Properties": {
    "class": "Access_Profile_Ping_Access_Properties",
    "properties": {         "url": https://example.com/v1/properties     } 
}
megamattzilla commented 2 weeks ago

@ghalevy based on our AS3 work I have provided Mark the below preferences:

Primary: in-line (base64) Secondary: URL reference Tertiary: file path reference

mohan-f5 commented 1 week ago

Hi @megamattzilla ,

We will implement and support base64 encoded properties data for now.