Skip to content

Commit 422b80f

Browse files
authored
Fix workflow (#7)
* update manifest: catalog, support_level * conditional catalog build, fix release_dir * Update generated README
1 parent 1dec10c commit 422b80f

File tree

3 files changed

+214
-3
lines changed

3 files changed

+214
-3
lines changed

.github/workflows/keyfactor-starter-workflow.yml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,26 @@ on: [workflow_dispatch, push, pull_request]
44
jobs:
55
call-create-github-release-workflow:
66
uses: Keyfactor/actions/.github/workflows/github-release.yml@main
7+
get-manifest-properties:
8+
runs-on: windows-latest
9+
outputs:
10+
update_catalog: ${{ steps.read-json.outputs.prop }}
11+
steps:
12+
- uses: actions/checkout@v3
13+
- name: Read json
14+
id: read-json
15+
shell: pwsh
16+
run: |
17+
$json = Get-Content integration-manifest.json | ConvertFrom-Json
18+
echo "::set-output name=prop::$(echo $json.update_catalog)"
719
820
call-dotnet-build-and-release-workflow:
921
needs: [call-create-github-release-workflow]
1022
uses: Keyfactor/actions/.github/workflows/dotnet-build-and-release.yml@main
1123
with:
1224
release_version: ${{ needs.call-create-github-release-workflow.outputs.release_version }}
1325
release_url: ${{ needs.call-create-github-release-workflow.outputs.release_url }}
14-
release_dir: EXAMPLE_SOLUTION/bin/Release/BUILD_TARGET # TODO: set build output directory to upload as a release, relative to checkout workspace
26+
release_dir: a10vthunder-orchestrator\bin\Release\netcoreapp3.1
1527
secrets:
1628
token: ${{ secrets.PRIVATE_PACKAGE_ACCESS }}
1729

@@ -20,7 +32,8 @@ jobs:
2032
uses: Keyfactor/actions/.github/workflows/generate-readme.yml@main
2133

2234
call-update-catalog-workflow:
23-
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
35+
needs: get-manifest-properties
36+
if: needs.get-manifest-properties.outputs.update_catalog == 'True' && (github.event_name == 'push' || github.event_name == 'workflow_dispatch')
2437
uses: Keyfactor/actions/.github/workflows/update-catalog.yml@main
2538
secrets:
2639
token: ${{ secrets.SDK_SYNC_PAT }}

README.md

Lines changed: 197 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ A10 vThunder AnyAgent allows an organization to inventory and deploy certificate
66

77
## About the Keyfactor Universal Orchestrator Capability
88

9-
This repository contains a Universal Orchestrator Capability which is a plugin to the Keyfactor Universal Orchestrator. Within the Keyfactor Platform, Orchestrators are used to manage “certificate stores” — collections of certificates and roots of trust that are found within and used by various applications.
9+
This repository contains a Universal Orchestrator Extension which is a plugin to the Keyfactor Universal Orchestrator. Within the Keyfactor Platform, Orchestrators are used to manage “certificate stores” — collections of certificates and roots of trust that are found within and used by various applications.
1010

1111
The Universal Orchestrator is part of the Keyfactor software distribution and is available via the Keyfactor customer portal. For general instructions on installing Capabilities, see the “Keyfactor Command Orchestrator Installation and Configuration Guide” section of the Keyfactor documentation. For configuration details of this specific Capability, see below in this readme.
1212

@@ -15,6 +15,202 @@ The Universal Orchestrator is the successor to the Windows Orchestrator. This Ca
1515
---
1616

1717

18+
## Support for a10vThunder
19+
20+
a10vThunder is supported by Keyfactor for Keyfactor customers. If you have a support issue, please open a support ticket with your Keyfactor representative.
21+
22+
###### To report a problem or suggest a new feature, use the **[Issues](../../issues)** tab. If you want to contribute actual bug fixes or proposed enhancements, use the **[Pull requests](../../pulls)** tab.
23+
___
24+
25+
26+
27+
28+
## Platform Specific Notes
29+
30+
The Keyfactor Universal Orchestrator may be installed on either Windows or Linux based platforms. The certificate operations supported by a capability may vary based what platform the capability is installed on. The table below indicates what capabilities are supported based on which platform the encompassing Universal Orchestrator is running.
31+
| Operation | Win | Linux |
32+
|-----|-----|------|
33+
|Supports Management Add|✓ |✓ |
34+
|Supports Management Remove|✓ |✓ |
35+
|Supports Create Store| | |
36+
|Supports Discovery| | |
37+
|Supports Renrollment| | |
38+
|Supports Inventory|✓ |✓ |
39+
40+
41+
42+
---
43+
44+
**A10 Networks vThunder Orchestrator**
45+
46+
**Overview**
47+
48+
A10 vThunder AnyAgent allows an organization to inventory and deploy certificates in any domain that the appliance services. The AnyAgent deploys the appropriate files (.cer, .pem) within the defined directories and also performs and Inventory on the Items.
49+
50+
This agent implements three job types – Inventory, Management Add, and Management Remove. Below are the steps necessary to configure this AnyAgent. It supports adding certificates with or without private keys.
51+
52+
53+
**A10 vThunder Configuration**
54+
55+
1. Read up on [A10 Networks ADC](https://a10networks.optrics.com/downloads/datasheets/Thunder-Application-Delivery-Controller-ADC.pdf) and how it works.
56+
2. A user account is needed with the appropriate permissions on vThunder to manage certificates.
57+
58+
**1. Create the New Certificate Store Type for the A10 vThunder Orchestrator**
59+
60+
In Keyfactor Command create a new Certificate Store Type similar to the one below:
61+
62+
#### STORE TYPE CONFIGURATION
63+
SETTING TAB | CONFIG ELEMENT | DESCRIPTION
64+
------|-----------|------------------
65+
Basic |Name |Descriptive name for the Store Type. A10 vThunder can be used.
66+
Basic |Short Name |The short name that identifies the registered functionality of the orchestrator. Must be vThunderU
67+
Basic |Custom Capability|Unchecked
68+
Basic |Job Types |Inventory, Add, and Remove are the supported job types.
69+
Basic |Needs Server |Must be checked
70+
Basic |Blueprint Allowed |checked
71+
Basic |Requires Store Password |Determines if a store password is required when configuring an individual store. This must be unchecked.
72+
Basic |Supports Entry Password |Determined if an individual entry within a store can have a password. This must be unchecked.
73+
Advanced |Store Path Type| Determines how the user will enter the store path when setting up the cert store. Freeform
74+
Advanced |Supports Custom Alias |Determines if an individual entry within a store can have a custom Alias. This must be Required
75+
Advanced |Private Key Handling |Determines how the orchestrator deals with private keys. Optional
76+
Advanced |PFX Password Style |Determines password style for the PFX Password. Default
77+
Custom Fields|protocol|Name:protocol Display Name:Protocol Type:Multiple Choice (http,https) Default Value:https Required:True
78+
Custom Fields|allowInvalidCert|Name:allowInvalidCert Display Name:Allow Invalid Cert Type:Bool Default Value:false Required:True
79+
Entry Parameters|N/A| There are no Entry Parameters
80+
81+
**Basic Settings:**
82+
83+
![](Media/Images/CertStoreType-Basic.gif)
84+
85+
**Advanced Settings:**
86+
87+
![](Media/Images/CertStoreType-Advanced.gif)
88+
89+
**Custom Fields:**
90+
91+
![](Media/Images/CertStoreType-CustomFields.gif)
92+
93+
**Entry Params:**
94+
95+
![](Media/Images/CertStoreType-EntryParameters.gif)
96+
97+
**2. Register the A10 vThunder Orchestrator with Keyfactor**
98+
1. Stop the Keyfactor Universal Orchestrator Service for the orchestrator you plan to install this extension to run on.
99+
2. In the Keyfactor Orchestrator installation folder (by convention usually C:\Program Files\Keyfactor\Keyfactor Orchestrator), find the "extensions" folder. Underneath that, create a new folder named "vThunderU". You may choose to use a different name, but then you must edit the manifest.json file downloaded from GitHub (Step 3) and modify based on Step 5 below.
100+
3. Download the latest version of the A10 orchestrator extension from [GitHub](https://github.com/Keyfactor/a10vthunder-orchestrator).
101+
4. Copy the contents of the download installation zip file to the folder created in Step 2.
102+
5. (Optional) If you decided to name the folder created in Step 2 to something different than the suggested name (vThunderU), you will need to edit the manifest.json file. Modify "CertStores.{folder name}.Capability" to the folder name you created in Step 2.
103+
6. Start the Keyfactor Universal Orchestrator Service.
104+
105+
Please reference the "Keyfactor Orchestrators Installation and Configuration Guide" obtainable from your Keyfactor contact/representative for more information regarding this step.
106+
107+
**3. Create a A10 vThunder Certificate Store within Keyfactor Command**
108+
In Keyfactor Command create a new Certificate Store similar to the one below
109+
110+
![](Media/Images/CertStore1.gif)
111+
![](Media/Images/CertStore2.gif)
112+
113+
#### STORE CONFIGURATION
114+
CONFIG ELEMENT |DESCRIPTION
115+
----------------|---------------
116+
Category |The type of certificate store to be configured. Select category based on the display name configured above "VThunder Universal".
117+
Container |This is a logical grouping of like stores. This configuration is optional and does not impact the functionality of the store.
118+
Client Machine |The url to the vThunder api. This file should the url and port of the vThunder api sample vThunder.test.com:1113.
119+
Store Path |This will be "cert". This is not used but just hard code it as "cert".
120+
Allow Invalid Cert|Only used for testing should be false in production.
121+
Protocol| http is only used for testing should be https in production
122+
Orchestrator |This is the orchestrator server registered with the appropriate capabilities to manage this certificate store type.
123+
Inventory Schedule |The interval that the system will use to report on what certificates are currently in the store.
124+
Use SSL |This should be checked.
125+
User |This is the user name for the vThunder api to access the certficate management functionality.
126+
Password |This is the password for the vThunder api to access the certficate management functionality.
127+
128+
***
129+
130+
#### Usage
131+
132+
**Adding New Certificate New Alias**
133+
134+
![](Media/Images/NewCertNewAlias.gif)
135+
136+
***
137+
138+
**Replace Cert With Same Alias**
139+
140+
![](Media/Images/ReplaceCertSameAlias.gif)
141+
142+
***
143+
144+
**Add Cert No Private Key**
145+
146+
![](Media/Images/AddPubCert.gif)
147+
148+
***
149+
150+
**Replace Cert No Private Key**
151+
152+
![](Media/Images/PubCertReplace.gif)
153+
154+
***
155+
156+
**Remove Cert No Private Key**
157+
158+
![](Media/Images/RemovePubCert.gif)
159+
160+
***
161+
162+
**Remove Cert and Private Key**
163+
164+
![](Media/Images/RemoveCertAndKey.gif)
165+
166+
***
167+
168+
**Certificate Inventory**
169+
170+
![](Media/Images/CertificateInventory.gif)
171+
172+
#### TEST CASES
173+
Case Number|Case Name|Case Description|Overwrite Flag|Alias Name|Expected Results|Passed
174+
------------|---------|----------------|--------------|----------|----------------|--------------
175+
1|Fresh Add With Alias|Will create new certificate and private key on the vThunder appliance|true|KeyAndCertBTest|The new KeyAndCertBTest certificate and private key will be created in the ADC/SSL Cerificates area on vThunder.|True
176+
1a|Replace Alias with no overwrite flag|Should warn user that a cert cannot be replaced with the same name without overwrite flag|false|KeyAndCertBTest|Error Saying Overwrite Flag Needs To Be Used|True
177+
1b|Replace Alias with overwrite flag|Will create new certificate and private key on the vThunder appliance|true|KeyAndCertBTest|Cert will be replaced because overwrite flag was used|True
178+
2|Add Cert Without Private Key|This will create a cert with no private key on vThunder|false|NewCertNoPk|Only Cert will be added to vThunder with no private key|True
179+
2a|Replace Cert Without Private Key|This will Replace a cert with no private key on vThunder|true|NewCertNoPk|Only Cert will be replaced on vThunder with no private key|True
180+
2b|Replace Cert Without Private Key no overwrite flag|Should warn user that a cert cannot be replaced with the same name without overwrite flag|false|NewCertNoPk|Error Saying Overwrite Flag Needs To Be Used|True
181+
3|Remove Certificate and Private Key|Certificate and Private Key Will Be Removed from A10|N/A|KeyAndCertBTest|Cert and Key will be removed from vThunder and Keyfactor Store|True
182+
3a|Remove Certificate without Private Key|Certificate Will Be Removed from A10|N/A|KeyAndCertBTest|Cert will be removed from vThunder and Keyfactor Store|True
183+
4|Inventory Certificates with Private Key|Inventory of Certificates with private keys will be pulled from vThunder up to 125 tested|N/A|N/A|125 Certs will be inventoried, more should be supported but there is no paging in the API so limits apply|True
184+
4a|Inventory Certificates without Private Key|Inventory of Certificates without private keys will be pulled from vThunder up to 125 tested|N/A|N/A|125 Certs will be inventoried, more should be supported but there is no paging in the API so limits apply|True
185+
186+
187+
188+
# a10vThunder
189+
190+
A10 vThunder AnyAgent allows an organization to inventory and deploy certificates in any domain that the appliance services. The AnyAgent deploys the appropriate files (.cer, .pem) within the defined directories and also performs and Inventory on the Items.
191+
192+
#### Integration status: Production - Ready for use in production environments.
193+
194+
## About the Keyfactor Universal Orchestrator Capability
195+
196+
This repository contains a Universal Orchestrator Extension which is a plugin to the Keyfactor Universal Orchestrator. Within the Keyfactor Platform, Orchestrators are used to manage “certificate stores” — collections of certificates and roots of trust that are found within and used by various applications.
197+
198+
The Universal Orchestrator is part of the Keyfactor software distribution and is available via the Keyfactor customer portal. For general instructions on installing Capabilities, see the “Keyfactor Command Orchestrator Installation and Configuration Guide” section of the Keyfactor documentation. For configuration details of this specific Capability, see below in this readme.
199+
200+
The Universal Orchestrator is the successor to the Windows Orchestrator. This Capability plugin only works with the Universal Orchestrator and does not work with the Windows Orchestrator.
201+
202+
---
203+
204+
205+
## Support for a10vThunder
206+
207+
a10vThunder is supported by Keyfactor for Keyfactor customers. If you have a support issue, please open a support ticket with your Keyfactor representative.
208+
209+
###### To report a problem or suggest a new feature, use the **[Issues](../../issues)** tab. If you want to contribute actual bug fixes or proposed enhancements, use the **[Pull requests](../../pulls)** tab.
210+
___
211+
212+
213+
18214

19215
## Platform Specific Notes
20216

integration-manifest.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33
"integration_type": "orchestrator",
44
"name": "a10vThunder",
55
"status": "production",
6+
"update_catalog": true,
67
"link_github": true,
8+
"support_level": "kf-supported",
79
"description": "A10 vThunder AnyAgent allows an organization to inventory and deploy certificates in any domain that the appliance services. The AnyAgent deploys the appropriate files (.cer, .pem) within the defined directories and also performs and Inventory on the Items.",
810
"about": {
911
"orchestrator": {

0 commit comments

Comments
 (0)